Skip to content

feat: improve HEIC, HEIF and JPEG XL browser support detection#26122

Merged
jrasm91 merged 1 commit intoimmich-app:mainfrom
nicosemp:nicosemp/feat-heic-heif-browser-support-detection
Mar 4, 2026
Merged

feat: improve HEIC, HEIF and JPEG XL browser support detection#26122
jrasm91 merged 1 commit intoimmich-app:mainfrom
nicosemp:nicosemp/feat-heic-heif-browser-support-detection

Conversation

@nicosemp
Copy link
Copy Markdown
Contributor

@nicosemp nicosemp commented Feb 11, 2026

Description

Following up on #25599, this PR improves browser support detection for JXL, and HEIC/HEIF mime types by:

  • Detecting support on any new browser that adds it.
    • Adds support for Chrome stable and Firefox nightly with the jxl flag enabled, as well as Zen Browser (flag enabled by default).
  • Excluding Safari versions <17 that don't support these mime types.

Details

The HEIC image was generated with ImageMagick from a 1x1 white PNG with this command:

./magick input.png -strip output.heic

and then turned into a base64 string:

base64 -w 0 output.heic > heic_b64.txt

Changing the output to .heif instead of .heic yields the same result, so I guess any browser supporting one format would support the other one too? If this is certainly true I can remove the redundant HEIF test, otherwise it's best to keep it.

Unfortunately the resulting string can't be as short as JPEG XL, but it's the shortest I could achieve.
If anyone else wants to improve it later, this slide suggests a theoretical minimum size of """only""" 386 bytes.

How Has This Been Tested?

Unfortunately this change would need tests running on different browsers to be validated:

  • Copy the added code, along with the supportedImageMimeTypes definition and test the added mime types on:
    • Safari -> it should add jxl, heic and heif.
    • Chrome -> it should not add anything.
    • Chrome with the #enable-jxl-image-format flag on -> it should add jxl.
    • Firefox -> it should not add anything.
    • Firefox nightly with the image.jxl.enabled flag turned on in about:config -> it should add jxl.
    • Zen Browser -> it should add jxl.
  • Tested isSecureContext on secure and insecure contexts.
  • Tested ImageDecoder.isTypeSupported on browsers with and without support for jxl, heic and heif mime types.
  • Tested the fallback support detection with base64 images (also tested in the previous PR).

Checklist:

  • I have performed a self-review of my own code
  • I have made corresponding changes to the documentation if applicable
  • I have no unrelated changes in the PR.
  • I have confirmed that any new dependencies are strictly necessary.
  • I have written tests for new code (if applicable)
  • I have followed naming conventions/patterns in the surrounding code
  • All code in src/services/ uses repositories implementations for database calls, filesystem operations, etc.
  • All code in src/repositories/ is pretty basic/simple and does not have any immich specific logic (that belongs in src/services/)

Please describe to which degree, if any, an LLM was used in creating this pull request.

No LLM.

Copy link
Copy Markdown
Member

@mertalev mertalev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a thought, but maybe we don't need it to process a full valid HEIF. We just need to know if the browser is willing to decode it, right? Maybe a truncated HEIF would give a different kind of error on an HEIF-compatible browser than one that can't decode it?

Comment thread web/src/lib/utils/asset-utils.ts Outdated
@meesfrensel
Copy link
Copy Markdown
Collaborator

Just leaving this here as an fyi and a note for the future: the ImageDecoder.isTypeSupported does exactly what we want here. The one problem: safari doesn't support it. I don't know if/when they plan on implementing the api, but firefox only supports it since late 2024 so there's still hope.

@nicosemp
Copy link
Copy Markdown
Contributor Author

Long day, I just read the comments now. Thanks for the quick response as always.

@meesfrensel that's a great suggestion, didn't know it existed. The current code already checks for isSafari via the user agent, so we could use that to add jxl, heic and heif mime types. On other browsers - if (!isSafari) - we can use ImageDecoder.isTypeSupported for each mime type.

@mertalev if this sounds good I'll rework my PR.

Also Caniuse.com currently reports Safari 11-16.6 at 0.35% global usage, while version >=17.0 is at 0.77%. Nearly a third of Safari users don't have JPEG XL, HEIC or HEIF support.
The current isSafari implementation only checks for the browser, not its version. Safari < 17.0 still evaluates to true and will try displaying JPEG XL, HEIC and HEIF images even though they are not supported. Should I narrow the definition to take the version into account?

The alternative is to keep the base64 image check only for Safari, but maybe a version check in the userAgent is better.

@mertalev
Copy link
Copy Markdown
Member

Using ImageDecoder.isTypeSupported seems ideal. Between that and isSafari, it seems like that covers the bases without needing to decode anything. The check could be something like isSafari || (ImageDecoder.isTypeSupported && ImageDecoder.isTypeSupported(type)). There's no point in checking all the formats though - isTypeSupported only has 81.71% coverage and we know everything but HEIF and JXL is supported in that list.

Also Caniuse.com currently reports Safari 11-16.6 at 0.35% global usage, while version >=17.0 is at 0.77%. Nearly a third of Safari users don't have JPEG XL, HEIC or HEIF support.

It's worth noting this is only macOS - the vast majority of iOS devices support it. It's probably good to check it though.

@nicosemp nicosemp force-pushed the nicosemp/feat-heic-heif-browser-support-detection branch from 18b3f2a to a559de7 Compare February 12, 2026 00:37
@nicosemp nicosemp changed the title feat: HEIF and HEIC browser support detection feat: rework HEIC, HEIF and JPEG XL browser support detection Feb 12, 2026
Comment thread web/src/lib/utils/asset-utils.ts Outdated
Comment thread web/src/lib/utils/asset-utils.ts Outdated
@michelheusschen
Copy link
Copy Markdown
Collaborator

ImageDecoder is only available in secure contexts and I don't think it's reasonable to expect that everyone runs Immich in a secure context

@meesfrensel
Copy link
Copy Markdown
Collaborator

Sorry I missed that. The currently proposed implementation won't error or anything since it checks for if (ImageDecoder) but that does mean no heic/jxl image support in non-secure contexts. A combination of approaches would work but that'll get unwieldy...

@mertalev
Copy link
Copy Markdown
Member

Good point about secure contexts, but I think this is fine for now. The status quo before was that these formats were only added for Safari, so this PR extends that to other browsers in secure contexts.

@nicosemp
Copy link
Copy Markdown
Contributor Author

Does Immich use telemetry to know what percentage of users access the website in/outside a secure context? I only access it locally, so definitely no https.

Either way I'd rather add back the two base64 tests for non-secure contexts if that's ok with you. It would just use a window.isSecureContext check, so only 1 type of test would run for any browser+context combination, and this would allow maximum support.

@mertalev
Copy link
Copy Markdown
Member

Sure, I think that's okay.

@nicosemp nicosemp force-pushed the nicosemp/feat-heic-heif-browser-support-detection branch from a559de7 to a28e5f1 Compare February 13, 2026 11:20
Comment thread web/src/lib/utils/asset-utils.ts
Comment thread web/src/lib/utils/asset-utils.ts Outdated
@nicosemp nicosemp force-pushed the nicosemp/feat-heic-heif-browser-support-detection branch from a28e5f1 to 3f600c7 Compare February 20, 2026 15:35
@nicosemp nicosemp changed the title feat: rework HEIC, HEIF and JPEG XL browser support detection feat: improve HEIC, HEIF and JPEG XL browser support detection Feb 20, 2026
Comment thread web/src/lib/utils/asset-utils.ts
Comment thread web/src/lib/utils/asset-utils.ts Outdated
@nicosemp nicosemp force-pushed the nicosemp/feat-heic-heif-browser-support-detection branch from 3f600c7 to 8b47225 Compare February 23, 2026 10:47
Comment thread web/src/lib/utils/asset-utils.ts Outdated
@nicosemp nicosemp force-pushed the nicosemp/feat-heic-heif-browser-support-detection branch from 8b47225 to 0697027 Compare February 23, 2026 12:26
@jrasm91 jrasm91 merged commit 5532f66 into immich-app:main Mar 4, 2026
48 checks passed
Deeds67 pushed a commit to open-noodle/gallery that referenced this pull request Mar 4, 2026
…h-app#26122)

feat: improve heic, heif and jxl browser support detection
alexlebens pushed a commit to alexlebens/infrastructure that referenced this pull request Mar 20, 2026
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [immich-app/immich](https://github.com/immich-app/immich) | minor | `v2.5.6` → `v2.6.1` |

---

> ⚠️ **Warning**
>
> Some dependencies could not be looked up. Check the [Dependency Dashboard](issues/2) for more information.

---

### Release Notes

<details>
<summary>immich-app/immich (immich-app/immich)</summary>

### [`v2.6.1`](https://github.com/immich-app/immich/releases/tag/v2.6.1)

[Compare Source](immich-app/immich@v2.6.0...v2.6.1)

### v2.6.1

#### Hot fixes

- Fixed a failed migration issue on the mobile app when the URL Switching feature is used

#### What's Changed

##### 🐛 Bug fixes

- fix(server): fallback to email when name is empty by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;27016](immich-app/immich#27016)
- fix: ignore errors deleting untitled album by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;27020](immich-app/immich#27020)
- fix(web): wrap long album title by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;27012](immich-app/immich#27012)
- fix(web): stop in-progress uploads on logout by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;27021](immich-app/immich#27021)
- fix: writing empty exif tags by [@&#8203;danieldietzler](https://github.com/danieldietzler) in [#&#8203;27025](immich-app/immich#27025)
- fix(web): disable send button by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;27051](immich-app/immich#27051)
- fix(mobile): server url migration by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;27050](immich-app/immich#27050)

**Full Changelog**: <immich-app/immich@v2.6.0...v2.6.1>

### [`v2.6.0`](https://github.com/immich-app/immich/releases/tag/v2.6.0)

[Compare Source](immich-app/immich@v2.5.6...v2.6.0)

### v2.6.0

Welcome to Immich `v2.6.0`, This release is a collection of more than *350 commits over 6 weeks*. I know, it is an eternity between releases compared to our previous era. This version focuses on bug fixes and enhancements across the app to provide a more delightful and smoother experience to you. This release also prepares for the next major release in the coming month, which will remove the old timeline implementation. Let's dive into the highlights of the release:

> \[!WARNING]
> For those who are still using the old timeline, please switch to the new timeline to avoid interruption, as the old timeline will be removed in the next release.
>
> ps: The old timeline has an exclamation icon next to the logo. <img width="525" height="120" alt="image" src="https://github.com/user-attachments/assets/ed36ea22-b16e-472f-961c-c19501712ba5" />

### Highlights

- Map side panel (web)
- Pick album cover (mobile)
- Shared link slugs (mobile)
- Shared link presets (web)
- Native HTTP clients (mobile)
- Video player and asset viewer improvements (mobile)
- Improved search results (mobile)
- `schema-check`: a new `immich-admin` command
- Read profile claims from ID token (OAuth)
- Notable fix: cast videos now automatically loop
- Notable fix: correctly extract make and model from Sony XAVC video files
- Notable fix: escape key handling on web
- Notable fix: healthcheck endpoint in maintenance mode
- Notable fix: timeline rendering for RTL languages like Arabic and Hebrew
- Notable fix: prevent server crash when extracting invalid metadata

#### Map side panel (web)

The map view on the web now opens a mini-timeline component as a side panel when you click on a cluster of assets. This makes it easier to view the cluster at a glance and enables bulk actions, such as adding to favorites and adding to an album.

<img width="800" alt="image" src="https://github.com/user-attachments/assets/6f90b04d-4aa7-4f68-b59c-c2b912e638f7" />

#### Pick album cover (mobile)

Users can now pick a new album cover directly from the mobile app.

<https://github.com/user-attachments/assets/7f99dc80-21c6-4ce6-9f75-8e6b0163dcaa>

#### Shared link slugs (mobile)

The mobile app now also supports setting a shared link slug, a feature that's been available on the web for a while.

<https://github.com/user-attachments/assets/5420995a-cfd4-471d-a3ac-db4fa45de780>

#### Shared link presets (web)

The expiration form input on the web was always a bit confusing, but it's been updated to make it easier to see and understand when a shared link will expire.

<img width="400" alt="image" src="https://github.com/user-attachments/assets/9d6124a9-eec2-43e8-b228-e1ac6c0415e8" />

#### Native HTTP clients (mobile)

The mobile app now uses native HTTP clients across both Android and iOS, with support for mTLS, self-signed certificates, basic auth, and custom headers. These features should now be more reliable and extend to background tasks, video playback, and other parts of the app. This also improves the app's overall network request performance thanks to HTTP/2 and HTTP/3, multiplexing, and caching.

#### Video player and asset viewer improvements (mobile)

The asset viewer has undergone many improvements under the hood to make it simpler, faster and more reliable. We've also added playback support for GIFs, enabled video zooming, and made many more bug fixes and tweaks.

##### The asset viewer now uses a gradient for actions, and video controls have been restyled

<img width="300" alt="image" src="https://github.com/user-attachments/assets/9a4e0892-f178-45fc-812c-10a6cba3f48b" />

##### Inline asset details

This used to be a bottom sheet and had a lot of glue for alignment. The new version is much more responsive and less buggy.

##### Before

<https://github.com/user-attachments/assets/43b59b59-7d6a-48d0-94d7-84b8cae1c2a9>

##### After

<https://github.com/user-attachments/assets/9217b6f4-1c92-40b0-bd95-a0681307cf38>

#### Improved search results (mobile)

The search results page now loads more results without rebuilding the entire grid, and should now load much faster. There are also new screens for when there are no search results and when all results have been loaded.

<https://github.com/user-attachments/assets/42ce69d4-1618-48ee-9cb9-91ec22e12b27>

#### `schema-check`: a new `immich-admin` command

A new `immich-admin` command has been added in this release: `schema-check`. The command runs a report on the database to check if any indexes, constraints, tables, or columns are missing. This check also runs automatically on startup.

#### Read profile claims from `idToken` (OAuth)

Prior to `v2.6.0`, Immich resolved the `email` and other claims from the [userinfo](https://openid.net/specs/openid-connect-core-1_0.html#UserInfo) endpoint. Now, Immich also supports reading those claims directly from the `idToken`. This makes it possible to use providers such as Microsoft ADFS that do not support the userinfo endpoint.

***

As always, there are many more QoL improvements, bug fixes, and enhancements in this release. Please find the full release note below

#### Support Immich

<p align="center">

<img src="https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExbjY2eWc5Y2F0ZW56MmR4aWE0dDhzZXlidXRmYWZyajl1bWZidXZpcyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/87CKDqErVfMqY/giphy.gif" width="450" title="SUPPORT THE PROJECT!">

</p>

If you find the project helpful, you can support Immich by purchasing a product key at <https://buy.immich.app> or our merchandise at <https://immich.store>

***

<!-- Release notes generated using configuration in .github/release.yml at v2.6.0 -->

#### What's Changed

##### 🔒 Security

- fix(server): restrict individual shared link asset removal to owners by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26868](immich-app/immich#26868)
- fix: add to shared link by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;26886](immich-app/immich#26886)

##### 🚀 Features

- feat: shared link login by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;25678](immich-app/immich#25678)
- feat: schema-check by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;25904](immich-app/immich#25904)
- feat: add people deeplink by [@&#8203;arne182](https://github.com/arne182) in [#&#8203;25686](immich-app/immich#25686)
- feat(mobile): inline asset details by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;25952](immich-app/immich#25952)
- feat(mobile): filter by tags by [@&#8203;benjamonnguyen](https://github.com/benjamonnguyen) in [#&#8203;26196](immich-app/immich#26196)
- feat: add .mxf file support by [@&#8203;timonrieger](https://github.com/timonrieger) in [#&#8203;24644](immich-app/immich#24644)
- feat: tap to see next/previous image by [@&#8203;thezeroalpha](https://github.com/thezeroalpha) in [#&#8203;20286](immich-app/immich#20286)
- feat(mobile): Allow users to set album cover from mobile app by [@&#8203;timonrieger](https://github.com/timonrieger) in [#&#8203;25515](immich-app/immich#25515)
- feat(mobile): Allow users to set profile picture from asset viewer by [@&#8203;timonrieger](https://github.com/timonrieger) in [#&#8203;25517](immich-app/immich#25517)
- feat: ROCm 7.2 and MIGraphX support  by [@&#8203;kprinssu](https://github.com/kprinssu) in [#&#8203;26178](immich-app/immich#26178)
- feat(web): map timeline sidepanel by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26532](immich-app/immich#26532)
- feat: add responsive layout to broken asset by [@&#8203;midzelis](https://github.com/midzelis) in [#&#8203;26384](immich-app/immich#26384)
- feat(web): toggle zoom on double-click in photo viewer by [@&#8203;midzelis](https://github.com/midzelis) in [#&#8203;26732](immich-app/immich#26732)
- feat(mobile): show animated images in asset viewer by [@&#8203;LeLunZ](https://github.com/LeLunZ) in [#&#8203;26614](immich-app/immich#26614)
- feat(mobile): open in browser by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in [#&#8203;26369](immich-app/immich#26369)

##### 🌟 Enhancements

- feat: verify permissions by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;25647](immich-app/immich#25647)
- feat(web): change link expiration logic & presets  by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in [#&#8203;26064](immich-app/immich#26064)
- feat(mobile): dynamic layout in new timeline by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;23837](immich-app/immich#23837)
- feat(cli): change progress bar to display file size by [@&#8203;Nykri](https://github.com/Nykri) in [#&#8203;23328](immich-app/immich#23328)
- feat(mobile): dynamic multi-line album name by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26040](immich-app/immich#26040)
- feat(mobile): hide search by context/OCR if disabled on server ([#&#8203;25472](immich-app/immich#25472)) by [@&#8203;Nacolis](https://github.com/Nacolis) in [#&#8203;26063](immich-app/immich#26063)
- fix(release): add docker-compose.rootless.yml to released assets by [@&#8203;dnozay](https://github.com/dnozay) in [#&#8203;26261](immich-app/immich#26261)
- feat(web): show ocr text boxes in panoramas by [@&#8203;meesfrensel](https://github.com/meesfrensel) in [#&#8203;25727](immich-app/immich#25727)
- feat(web): loop chromecast video by [@&#8203;etnoy](https://github.com/etnoy) in [#&#8203;24410](immich-app/immich#24410)
- chore(web): merge "Add to album" and "Add to shared album" actions into a single action by [@&#8203;timonrieger](https://github.com/timonrieger) in [#&#8203;24669](immich-app/immich#24669)
- feat(mobile): timeline - add bottomWidgetBuilder  by [@&#8203;PeterOmbodi](https://github.com/PeterOmbodi) in [#&#8203;25634](immich-app/immich#25634)
- feat(mobile): video zooming in asset viewer by [@&#8203;goalie2002](https://github.com/goalie2002) in [#&#8203;22036](immich-app/immich#22036)
- feat(mobile): Add slug support for shared links by [@&#8203;Lauritz-Tieste](https://github.com/Lauritz-Tieste) in [#&#8203;26441](immich-app/immich#26441)
- feat: warn when losing transparency during thumbnail generation by [@&#8203;midzelis](https://github.com/midzelis) in [#&#8203;26243](immich-app/immich#26243)
- perf(mobile): optimized album sorting by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in [#&#8203;25179](immich-app/immich#25179)
- feat(mobile): prompt when deleting from trash by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in [#&#8203;26392](immich-app/immich#26392)
- feat: getAssetEdits respond with edit IDs by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;26445](immich-app/immich#26445)
- fix(server): accept showAt and hideAt for creating memories by [@&#8203;meesfrensel](https://github.com/meesfrensel) in [#&#8203;26429](immich-app/immich#26429)
- feat(server): SyncAssetEditV1 by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;26446](immich-app/immich#26446)
- feat: splash screen error page by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;26460](immich-app/immich#26460)
- feat(mobile): add confirmation dialog to permanent delete action by [@&#8203;ByteSizedMarius](https://github.com/ByteSizedMarius) in [#&#8203;26442](immich-app/immich#26442)
- feat: enhance face-editor positioning by [@&#8203;midzelis](https://github.com/midzelis) in [#&#8203;26303](immich-app/immich#26303)
- feat: improve HEIC, HEIF and JPEG XL browser support detection by [@&#8203;nicosemp](https://github.com/nicosemp) in [#&#8203;26122](immich-app/immich#26122)
- refactor(web): remove replaceAsset action by [@&#8203;timonrieger](https://github.com/timonrieger) in [#&#8203;26444](immich-app/immich#26444)
- feat(web): bounding box for faces when hovering over the face in photo view by [@&#8203;cratoo](https://github.com/cratoo) in [#&#8203;26667](immich-app/immich#26667)
- feat(mobile): keep search results visible by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26498](immich-app/immich#26498)
- feat(mobile): use shared native client by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;25942](immich-app/immich#25942)
- feat(mobile): SyncAssetEditV1 by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;26518](immich-app/immich#26518)
- feat(ml): enable openvino for cpu by [@&#8203;apejcic](https://github.com/apejcic) in [#&#8203;22948](immich-app/immich#22948)
- feat: responsive video duration in thumbnail by [@&#8203;midzelis](https://github.com/midzelis) in [#&#8203;26770](immich-app/immich#26770)
- feat(web): animate zoom toggle with cubicOut easing by [@&#8203;midzelis](https://github.com/midzelis) in [#&#8203;26731](immich-app/immich#26731)
- feat(mobile): consolidate video controls by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26673](immich-app/immich#26673)
- feat(web): add shortcut "p" to open/close the face tag box by [@&#8203;cratoo](https://github.com/cratoo) in [#&#8203;26826](immich-app/immich#26826)
- feat(mobile): use material design 3 slider by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26829](immich-app/immich#26829)
- feat: adaptive progressive image loading for photo viewer by [@&#8203;midzelis](https://github.com/midzelis) in [#&#8203;26636](immich-app/immich#26636)
- fix(server): extract make/model from sony video files by [@&#8203;brendanngo](https://github.com/brendanngo) in [#&#8203;26833](immich-app/immich#26833)
- chore(mobile): remove background from asset viewer back button by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26851](immich-app/immich#26851)
- feat(server): support IDPs that only send the userinfo in the ID token by [@&#8203;Belnadifia](https://github.com/Belnadifia) in [#&#8203;26717](immich-app/immich#26717)
- feat(web): improve OCR overlay text fitting, reactivity, and accessibility by [@&#8203;midzelis](https://github.com/midzelis) in [#&#8203;26678](immich-app/immich#26678)
- fix(web): allow pasting PIN code from clipboard or password manager by [@&#8203;pressslav](https://github.com/pressslav) in [#&#8203;26944](immich-app/immich#26944)

##### 🐛 Bug fixes

- fix: ignore checksum constraint error when logging by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;26113](immich-app/immich#26113)
- fix(web): use locale for date picker by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26125](immich-app/immich#26125)
- fix(web): escape shortcut handling by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26096](immich-app/immich#26096)
- fix(mobile): Login routing on Splash screen by [@&#8203;PeterOmbodi](https://github.com/PeterOmbodi) in [#&#8203;26128](immich-app/immich#26128)
- fix: null local date time in timeline queries by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;26133](immich-app/immich#26133)
- fix(web): prevent event manager from throwing error by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26156](immich-app/immich#26156)
- fix(web): improve api key modal responsiveness by [@&#8203;klenner1](https://github.com/klenner1) in [#&#8203;26151](immich-app/immich#26151)
- fix(web): show correct assets in memory gallery by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26157](immich-app/immich#26157)
- fix(web): add missing [@&#8203;immich/ui](https://github.com/immich/ui) translations by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26143](immich-app/immich#26143)
- fix(mobile): timeline handling on foldable phones + ensuring that images are not cut off by [@&#8203;bkchr](https://github.com/bkchr) in [#&#8203;25088](immich-app/immich#25088)
- fix(mobile): prevent nav bar label text wrapping by [@&#8203;chrislongros](https://github.com/chrislongros) in [#&#8203;26011](immich-app/immich#26011)
- fix(mobile): hide latest version warnings by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26036](immich-app/immich#26036)
- fix(mobile): inconsistent query for people by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in [#&#8203;24437](immich-app/immich#24437)
- fix(web): timeline multi select group state by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26180](immich-app/immich#26180)
- fix(web): add checkerboard background for transparent images by [@&#8203;agent-steven](https://github.com/agent-steven) in [#&#8203;26091](immich-app/immich#26091)
- fix(mobile): inherit toolbar opacity by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;25694](immich-app/immich#25694)
- fix(web): focus tag input when modal opens by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26256](immich-app/immich#26256)
- fix(web): clear face boxes when switching assets by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26249](immich-app/immich#26249)
- fix(web): clear unsaved asset description when changing asset by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26255](immich-app/immich#26255)
- fix(web): clear cache when asset changes by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26257](immich-app/immich#26257)
- fix: utc time zone upserts by [@&#8203;danieldietzler](https://github.com/danieldietzler) in [#&#8203;26258](immich-app/immich#26258)
- fix: metadata crash by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;26327](immich-app/immich#26327)
- fix: prevent server crash when extraction of metadata fails if the assets are corrupted by [@&#8203;Devansh-Jani](https://github.com/Devansh-Jani) in [#&#8203;26042](immich-app/immich#26042)
- fix(server): db restore failure when `DB_URL` is set to unix-domain socket connection by [@&#8203;fabio-garavini](https://github.com/fabio-garavini) in [#&#8203;26252](immich-app/immich#26252)
- fix: Download the edited version when downloading multiple photos by [@&#8203;MontejoJorge](https://github.com/MontejoJorge) in [#&#8203;26259](immich-app/immich#26259)
- fix: include `DROP INDEX` in transaction to prevent missing index on rollback by [@&#8203;haoxi911](https://github.com/haoxi911) in [#&#8203;25399](immich-app/immich#25399)
- fix: safari address bar color by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;26346](immich-app/immich#26346)
- fix(web): prevent panorama image reload during asset updates by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26349](immich-app/immich#26349)
- fix(web): favoriting assets opened via GalleryViewer by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26350](immich-app/immich#26350)
- fix(i18n): add translation key for partner's photos by [@&#8203;timonrieger](https://github.com/timonrieger) in [#&#8203;26348](immich-app/immich#26348)
- fix(web): single select scroll behavior by [@&#8203;timonrieger](https://github.com/timonrieger) in [#&#8203;26358](immich-app/immich#26358)
- perf: add indexes to improve People API response times by [@&#8203;bxtdvd](https://github.com/bxtdvd) in [#&#8203;26337](immich-app/immich#26337)
- fix: pin code reset modal by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;26370](immich-app/immich#26370)
- fix(mobile): Reset "People" search filter chip if no selections are made by [@&#8203;benjamonnguyen](https://github.com/benjamonnguyen) in [#&#8203;26267](immich-app/immich#26267)
- fix(cli): delete sidecar files after upload if requested by [@&#8203;timonrieger](https://github.com/timonrieger) in [#&#8203;26353](immich-app/immich#26353)
- fix(web): album description auto height by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26420](immich-app/immich#26420)
- fix(web): prevent side panel overlap during transition by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26398](immich-app/immich#26398)
- fix(web): storage template example by [@&#8203;mmomjian](https://github.com/mmomjian) in [#&#8203;26424](immich-app/immich#26424)
- fix(web): prevent `state_unsafe_mutation` error on people page by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26438](immich-app/immich#26438)
- fix: missing deletedAt and isVisible columns on mobile by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;26414](immich-app/immich#26414)
- fix(mobile): joinLocal on archived timeline by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in [#&#8203;26387](immich-app/immich#26387)
- fix: always show library scan button by [@&#8203;etnoy](https://github.com/etnoy) in [#&#8203;26428](immich-app/immich#26428)
- fix: retain asset when either asset is a favorite by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;26473](immich-app/immich#26473)
- fix(web): prevent null folder tree on concurrent load by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26489](immich-app/immich#26489)
- fix(web): toast warning when trying to upload unsupported file type by [@&#8203;meesfrensel](https://github.com/meesfrensel) in [#&#8203;26492](immich-app/immich#26492)
- fix(mobile): birthday picker shows limited months when no date exists by [@&#8203;socksprox](https://github.com/socksprox) in [#&#8203;26407](immich-app/immich#26407)
- fix: consider DAR when extracting video dimension by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;25293](immich-app/immich#25293)
- feat(mobile): Prevent premature image cache eviction when higher image loading is enabled by [@&#8203;LeLunZ](https://github.com/LeLunZ) in [#&#8203;26208](immich-app/immich#26208)
- refactor: star rating by [@&#8203;meesfrensel](https://github.com/meesfrensel) in [#&#8203;26357](immich-app/immich#26357)
- fix(mobile): set correct initial system-ui mode in asset viewer by [@&#8203;goalie2002](https://github.com/goalie2002) in [#&#8203;26500](immich-app/immich#26500)
- fix(server): Live Photo migration bug when album is in template by [@&#8203;NikhilAlapati](https://github.com/NikhilAlapati) in [#&#8203;25329](immich-app/immich#25329)
- fix(web): handle delete shortcut on shared link page as remove by [@&#8203;meesfrensel](https://github.com/meesfrensel) in [#&#8203;26552](immich-app/immich#26552)
- fix(mobile): prevent video player from being recreated unnecessarily by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26553](immich-app/immich#26553)
- fix(mobile): don't cut off top corners of app bar by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26550](immich-app/immich#26550)
- feat: update onnxruntime-openvino to 1.24.1 and intel drivers by [@&#8203;savely-krasovsky](https://github.com/savely-krasovsky) in [#&#8203;26565](immich-app/immich#26565)
- fix: hide download action for local/merged assets by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in [#&#8203;26461](immich-app/immich#26461)
- fix(web): top bar z index on search page by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in [#&#8203;26582](immich-app/immich#26582)
- fix(web): show shared link download button when logged in by [@&#8203;Snowknight26](https://github.com/Snowknight26) in [#&#8203;26629](immich-app/immich#26629)
- fix(mobile): asset viewer hero animation by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26545](immich-app/immich#26545)
- fix(web): timeline and asset viewer RTL support by [@&#8203;meesfrensel](https://github.com/meesfrensel) in [#&#8203;26513](immich-app/immich#26513)
- fix(server): clean up edited thumbnail when deleting asset by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26664](immich-app/immich#26664)
- fix: implement existing withStacked on searchAssetBuilder by [@&#8203;babbitt](https://github.com/babbitt) in [#&#8203;26607](immich-app/immich#26607)
- fix(mobile): video state by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26574](immich-app/immich#26574)
- fix(maintenance mode): wait for valid server config on restart by [@&#8203;insertish](https://github.com/insertish) in [#&#8203;26456](immich-app/immich#26456)
- fix(web): inconsistent asset nav bar state after visiting shared link by [@&#8203;Snowknight26](https://github.com/Snowknight26) in [#&#8203;26674](immich-app/immich#26674)
- fix(web): download toast showing wrong filename for motion assets by [@&#8203;Snowknight26](https://github.com/Snowknight26) in [#&#8203;26689](immich-app/immich#26689)
- fix(mobile): add safe area for asset details by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26675](immich-app/immich#26675)
- fix(web): combobox dropdown positioning in modals by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26707](immich-app/immich#26707)
- fix(web): video stealing focus when it plays again when looping by [@&#8203;Snowknight26](https://github.com/Snowknight26) in [#&#8203;26704](immich-app/immich#26704)
- fix(ml): batch size setting by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;26524](immich-app/immich#26524)
- fix(server): clarify transcoding bitrate policy by [@&#8203;meesfrensel](https://github.com/meesfrensel) in [#&#8203;26711](immich-app/immich#26711)
- fix: playback style migration by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;26718](immich-app/immich#26718)
- fix(web): asset viewer showing wrong viewer type when hovering on stack thumbnails by [@&#8203;Snowknight26](https://github.com/Snowknight26) in [#&#8203;26741](immich-app/immich#26741)
- fix(server): opus handling as accepted audio codec in transcode policy by [@&#8203;skatsubo](https://github.com/skatsubo) in [#&#8203;26736](immich-app/immich#26736)
- fix(web): refresh recent albums sidebar after album changes by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26757](immich-app/immich#26757)
- fix(web): show the correct cursor at crop bounds when editing an asset by [@&#8203;Snowknight26](https://github.com/Snowknight26) in [#&#8203;26748](immich-app/immich#26748)
- fix(web): recalculate face bounding boxes by [@&#8203;cratoo](https://github.com/cratoo) in [#&#8203;26737](immich-app/immich#26737)
- fix(web): context menu overflow by [@&#8203;SevereCloud](https://github.com/SevereCloud) in [#&#8203;26760](immich-app/immich#26760)
- fix(web): correct tag rounding in search options by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26814](immich-app/immich#26814)
- fix(web): prevent unrelated assets from appearing in tag view by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26816](immich-app/immich#26816)
- fix(mobile): use tabular figures in backup page by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26830](immich-app/immich#26830)
- fix(mobile): wrap backup error message text by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26834](immich-app/immich#26834)
- fix(server): use correct day ordering in timeline buckets by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26821](immich-app/immich#26821)
- fix(web): face selection box position resetting on browser resize by [@&#8203;Snowknight26](https://github.com/Snowknight26) in [#&#8203;26766](immich-app/immich#26766)
- fix: use correct original URL for 360 video panorama playback by [@&#8203;luis15pt](https://github.com/luis15pt) in [#&#8203;26831](immich-app/immich#26831)
- fix(web): disable drag and drop for internal items by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26897](immich-app/immich#26897)
- fix(web): keep header fixed on individual shared links by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26892](immich-app/immich#26892)
- fix: SMTP over TLS by [@&#8203;nathanielhourt](https://github.com/nathanielhourt) in [#&#8203;26893](immich-app/immich#26893)
- fix(web): copy yearMonth in MonthGroup to avoid shared object reference with asset in [#&#8203;26890](immich-app/immich#26890)
- fix(mobile): use shared auth for background\_downloader by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;26911](immich-app/immich#26911)
- fix(web): prevent search page error on missing album filter by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26948](immich-app/immich#26948)
- fix(server): sync files to disk by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26881](immich-app/immich#26881)
- fix(web): jump to primary stacked asset from memory by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26978](immich-app/immich#26978)
- fix(mobile): reflect asset deletions instantly by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26835](immich-app/immich#26835)
- fix: healthcheck by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;26989](immich-app/immich#26989)
- fix(web): escape handling for tagging and adding a face in asset viewer by [@&#8203;cratoo](https://github.com/cratoo) in [#&#8203;26870](immich-app/immich#26870)
- fix: filter after searching by asset id by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;26994](immich-app/immich#26994)
- fix: bounding box return type by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;27014](immich-app/immich#27014)
- fix: validate accept header before returning html by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;27019](immich-app/immich#27019)

##### 📚 Documentation

- chore(docs): Update help channel for developers by [@&#8203;Mraedis](https://github.com/Mraedis) in [#&#8203;26284](immich-app/immich#26284)
- feat(docs): Explain configuration file location for Docker Compose by [@&#8203;keunes](https://github.com/keunes) in [#&#8203;24989](immich-app/immich#24989)
- chore(docs): add quick-start guide for DevPod with docker by [@&#8203;dhlavaty](https://github.com/dhlavaty) in [#&#8203;26213](immich-app/immich#26213)
- feat(docs): Adding information about parameter c= by [@&#8203;aviv926](https://github.com/aviv926) in [#&#8203;26430](https://github.com/immich-app/immich/pull/26430)
- feat: doc links by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;26519](https://github.com/immich-app/immich/pull/26519)
- fix(docs): add ocr to job flow diagram by [@&#8203;niij](https://github.com/niij) in [#&#8203;26505](https://github.com/immich-app/immich/pull/26505)

##### 🌐 Translations

- chore(web): update translations by [@&#8203;weblate](https://github.com/weblate) in [#&#8203;26118](https://github.com/immich-app/immich/pull/26118)
- fix: clarify external domain setting is used for emails too by [@&#8203;chrislongros](https://github.com/chrislongros) in [#&#8203;26009](https://github.com/immich-app/immich/pull/26009)
- chore(web): update translations by [@&#8203;weblate](https://github.com/weblate) in [#&#8203;26167](https://github.com/immich-app/immich/pull/26167)
- fix(web): error page i18n by [@&#8203;meesfrensel](https://github.com/meesfrensel) in [#&#8203;26517](https://github.com/immich-app/immich/pull/26517)
- chore(web): clarify locale settings description by [@&#8203;meesfrensel](https://github.com/meesfrensel) in [#&#8203;25562](https://github.com/immich-app/immich/pull/25562)
- chore(web): update translations by [@&#8203;weblate](https://github.com/weblate) in [#&#8203;26192](https://github.com/immich-app/immich/pull/26192)

#### New Contributors

- [@&#8203;klenner1](https://github.com/klenner1) made their first contribution in [#&#8203;26151](immich-app/immich#26151)
- [@&#8203;bkchr](https://github.com/bkchr) made their first contribution in [#&#8203;25088](immich-app/immich#25088)
- [@&#8203;chrislongros](https://github.com/chrislongros) made their first contribution in [#&#8203;26011](immich-app/immich#26011)
- [@&#8203;agent-steven](https://github.com/agent-steven) made their first contribution in [#&#8203;26091](immich-app/immich#26091)
- [@&#8203;dhlavaty](https://github.com/dhlavaty) made their first contribution in [#&#8203;26238](https://github.com/immich-app/immich/pull/26238)
- [@&#8203;Nacolis](https://github.com/Nacolis) made their first contribution in [#&#8203;26063](immich-app/immich#26063)
- [@&#8203;ewinnd](https://github.com/ewinnd) made their first contribution in [#&#8203;26277](https://github.com/immich-app/immich/pull/26277)
- [@&#8203;dnozay](https://github.com/dnozay) made their first contribution in [#&#8203;26261](immich-app/immich#26261)
- [@&#8203;keunes](https://github.com/keunes) made their first contribution in [#&#8203;24989](immich-app/immich#24989)
- [@&#8203;Devansh-Jani](https://github.com/Devansh-Jani) made their first contribution in [#&#8203;26042](immich-app/immich#26042)
- [@&#8203;benjamonnguyen](https://github.com/benjamonnguyen) made their first contribution in [#&#8203;26196](immich-app/immich#26196)
- [@&#8203;fabio-garavini](https://github.com/fabio-garavini) made their first contribution in [#&#8203;26252](immich-app/immich#26252)
- [@&#8203;haoxi911](https://github.com/haoxi911) made their first contribution in [#&#8203;25399](immich-app/immich#25399)
- [@&#8203;thezeroalpha](https://github.com/thezeroalpha) made their first contribution in [#&#8203;20286](immich-app/immich#20286)
- [@&#8203;socksprox](https://github.com/socksprox) made their first contribution in [#&#8203;26407](immich-app/immich#26407)
- [@&#8203;kprinssu](https://github.com/kprinssu) made their first contribution in [#&#8203;26178](immich-app/immich#26178)
- [@&#8203;babbitt](https://github.com/babbitt) made their first contribution in [#&#8203;26607](immich-app/immich#26607)
- [@&#8203;niij](https://github.com/niij) made their first contribution in [#&#8203;26505](https://github.com/immich-app/immich/pull/26505)
- [@&#8203;cratoo](https://github.com/cratoo) made their first contribution in [#&#8203;26667](immich-app/immich#26667)
- [@&#8203;M123-dev](https://github.com/M123-dev) made their first contribution in [#&#8203;26630](https://github.com/immich-app/immich/pull/26630)
- [@&#8203;apejcic](https://github.com/apejcic) made their first contribution in [#&#8203;22948](immich-app/immich#22948)
- [@&#8203;SevereCloud](https://github.com/SevereCloud) made their first contribution in [#&#8203;26760](immich-app/immich#26760)
- [@&#8203;brendanngo](https://github.com/brendanngo) made their first contribution in [#&#8203;26833](immich-app/immich#26833)
- [@&#8203;luis15pt](https://github.com/luis15pt) made their first contribution in [#&#8203;26831](immich-app/immich#26831)
- [@&#8203;nathanielhourt](https://github.com/nathanielhourt) made their first contribution in [#&#8203;26893](immich-app/immich#26893)
- [@&#8203;Belnadifia](https://github.com/Belnadifia) made their first contribution in [#&#8203;26717](immich-app/immich#26717)
- [@&#8203;pressslav](https://github.com/pressslav) made their first contribution in [#&#8203;26944](immich-app/immich#26944)

**Full Changelog**: <immich-app/immich@v2.5.6...v2.6.0>

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My41OS4yIiwidXBkYXRlZEluVmVyIjoiNDMuNTkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW1hZ2UiXX0=-->

Reviewed-on: https://gitea.alexlebens.dev/alexlebens/infrastructure/pulls/4886
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
alexlebens pushed a commit to alexlebens/infrastructure that referenced this pull request Mar 20, 2026
….6.1 (#4887)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [ghcr.io/immich-app/immich-server](https://github.com/immich-app/immich) | minor | `v2.5.6` → `v2.6.1` |

---

> ⚠️ **Warning**
>
> Some dependencies could not be looked up. Check the [Dependency Dashboard](issues/2) for more information.

---

### Release Notes

<details>
<summary>immich-app/immich (ghcr.io/immich-app/immich-server)</summary>

### [`v2.6.1`](https://github.com/immich-app/immich/releases/tag/v2.6.1)

[Compare Source](immich-app/immich@v2.6.0...v2.6.1)

### v2.6.1

#### Hot fixes

- Fixed a failed migration issue on the mobile app when the URL Switching feature is used

#### What's Changed

##### 🐛 Bug fixes

- fix(server): fallback to email when name is empty by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;27016](immich-app/immich#27016)
- fix: ignore errors deleting untitled album by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;27020](immich-app/immich#27020)
- fix(web): wrap long album title by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;27012](immich-app/immich#27012)
- fix(web): stop in-progress uploads on logout by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;27021](immich-app/immich#27021)
- fix: writing empty exif tags by [@&#8203;danieldietzler](https://github.com/danieldietzler) in [#&#8203;27025](immich-app/immich#27025)
- fix(web): disable send button by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;27051](immich-app/immich#27051)
- fix(mobile): server url migration by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;27050](immich-app/immich#27050)

**Full Changelog**: <immich-app/immich@v2.6.0...v2.6.1>

### [`v2.6.0`](https://github.com/immich-app/immich/releases/tag/v2.6.0)

[Compare Source](immich-app/immich@v2.5.6...v2.6.0)

### v2.6.0

Welcome to Immich `v2.6.0`, This release is a collection of more than *350 commits over 6 weeks*. I know, it is an eternity between releases compared to our previous era. This version focuses on bug fixes and enhancements across the app to provide a more delightful and smoother experience to you. This release also prepares for the next major release in the coming month, which will remove the old timeline implementation. Let's dive into the highlights of the release:

> \[!WARNING]
> For those who are still using the old timeline, please switch to the new timeline to avoid interruption, as the old timeline will be removed in the next release.
>
> ps: The old timeline has an exclamation icon next to the logo. <img width="525" height="120" alt="image" src="https://github.com/user-attachments/assets/ed36ea22-b16e-472f-961c-c19501712ba5" />

### Highlights

- Map side panel (web)
- Pick album cover (mobile)
- Shared link slugs (mobile)
- Shared link presets (web)
- Native HTTP clients (mobile)
- Video player and asset viewer improvements (mobile)
- Improved search results (mobile)
- `schema-check`: a new `immich-admin` command
- Read profile claims from ID token (OAuth)
- Notable fix: cast videos now automatically loop
- Notable fix: correctly extract make and model from Sony XAVC video files
- Notable fix: escape key handling on web
- Notable fix: healthcheck endpoint in maintenance mode
- Notable fix: timeline rendering for RTL languages like Arabic and Hebrew
- Notable fix: prevent server crash when extracting invalid metadata

#### Map side panel (web)

The map view on the web now opens a mini-timeline component as a side panel when you click on a cluster of assets. This makes it easier to view the cluster at a glance and enables bulk actions, such as adding to favorites and adding to an album.

<img width="800" alt="image" src="https://github.com/user-attachments/assets/6f90b04d-4aa7-4f68-b59c-c2b912e638f7" />

#### Pick album cover (mobile)

Users can now pick a new album cover directly from the mobile app.

<https://github.com/user-attachments/assets/7f99dc80-21c6-4ce6-9f75-8e6b0163dcaa>

#### Shared link slugs (mobile)

The mobile app now also supports setting a shared link slug, a feature that's been available on the web for a while.

<https://github.com/user-attachments/assets/5420995a-cfd4-471d-a3ac-db4fa45de780>

#### Shared link presets (web)

The expiration form input on the web was always a bit confusing, but it's been updated to make it easier to see and understand when a shared link will expire.

<img width="400" alt="image" src="https://github.com/user-attachments/assets/9d6124a9-eec2-43e8-b228-e1ac6c0415e8" />

#### Native HTTP clients (mobile)

The mobile app now uses native HTTP clients across both Android and iOS, with support for mTLS, self-signed certificates, basic auth, and custom headers. These features should now be more reliable and extend to background tasks, video playback, and other parts of the app. This also improves the app's overall network request performance thanks to HTTP/2 and HTTP/3, multiplexing, and caching.

#### Video player and asset viewer improvements (mobile)

The asset viewer has undergone many improvements under the hood to make it simpler, faster and more reliable. We've also added playback support for GIFs, enabled video zooming, and made many more bug fixes and tweaks.

##### The asset viewer now uses a gradient for actions, and video controls have been restyled

<img width="300" alt="image" src="https://github.com/user-attachments/assets/9a4e0892-f178-45fc-812c-10a6cba3f48b" />

##### Inline asset details

This used to be a bottom sheet and had a lot of glue for alignment. The new version is much more responsive and less buggy.

##### Before

<https://github.com/user-attachments/assets/43b59b59-7d6a-48d0-94d7-84b8cae1c2a9>

##### After

<https://github.com/user-attachments/assets/9217b6f4-1c92-40b0-bd95-a0681307cf38>

#### Improved search results (mobile)

The search results page now loads more results without rebuilding the entire grid, and should now load much faster. There are also new screens for when there are no search results and when all results have been loaded.

<https://github.com/user-attachments/assets/42ce69d4-1618-48ee-9cb9-91ec22e12b27>

#### `schema-check`: a new `immich-admin` command

A new `immich-admin` command has been added in this release: `schema-check`. The command runs a report on the database to check if any indexes, constraints, tables, or columns are missing. This check also runs automatically on startup.

#### Read profile claims from `idToken` (OAuth)

Prior to `v2.6.0`, Immich resolved the `email` and other claims from the [userinfo](https://openid.net/specs/openid-connect-core-1_0.html#UserInfo) endpoint. Now, Immich also supports reading those claims directly from the `idToken`. This makes it possible to use providers such as Microsoft ADFS that do not support the userinfo endpoint.

***

As always, there are many more QoL improvements, bug fixes, and enhancements in this release. Please find the full release note below

#### Support Immich

<p align="center">

<img src="https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExbjY2eWc5Y2F0ZW56MmR4aWE0dDhzZXlidXRmYWZyajl1bWZidXZpcyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/87CKDqErVfMqY/giphy.gif" width="450" title="SUPPORT THE PROJECT!">

</p>

If you find the project helpful, you can support Immich by purchasing a product key at <https://buy.immich.app> or our merchandise at <https://immich.store>

***

<!-- Release notes generated using configuration in .github/release.yml at v2.6.0 -->

#### What's Changed

##### 🔒 Security

- fix(server): restrict individual shared link asset removal to owners by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26868](immich-app/immich#26868)
- fix: add to shared link by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;26886](immich-app/immich#26886)

##### 🚀 Features

- feat: shared link login by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;25678](immich-app/immich#25678)
- feat: schema-check by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;25904](immich-app/immich#25904)
- feat: add people deeplink by [@&#8203;arne182](https://github.com/arne182) in [#&#8203;25686](immich-app/immich#25686)
- feat(mobile): inline asset details by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;25952](immich-app/immich#25952)
- feat(mobile): filter by tags by [@&#8203;benjamonnguyen](https://github.com/benjamonnguyen) in [#&#8203;26196](immich-app/immich#26196)
- feat: add .mxf file support by [@&#8203;timonrieger](https://github.com/timonrieger) in [#&#8203;24644](immich-app/immich#24644)
- feat: tap to see next/previous image by [@&#8203;thezeroalpha](https://github.com/thezeroalpha) in [#&#8203;20286](immich-app/immich#20286)
- feat(mobile): Allow users to set album cover from mobile app by [@&#8203;timonrieger](https://github.com/timonrieger) in [#&#8203;25515](immich-app/immich#25515)
- feat(mobile): Allow users to set profile picture from asset viewer by [@&#8203;timonrieger](https://github.com/timonrieger) in [#&#8203;25517](immich-app/immich#25517)
- feat: ROCm 7.2 and MIGraphX support  by [@&#8203;kprinssu](https://github.com/kprinssu) in [#&#8203;26178](immich-app/immich#26178)
- feat(web): map timeline sidepanel by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26532](immich-app/immich#26532)
- feat: add responsive layout to broken asset by [@&#8203;midzelis](https://github.com/midzelis) in [#&#8203;26384](immich-app/immich#26384)
- feat(web): toggle zoom on double-click in photo viewer by [@&#8203;midzelis](https://github.com/midzelis) in [#&#8203;26732](immich-app/immich#26732)
- feat(mobile): show animated images in asset viewer by [@&#8203;LeLunZ](https://github.com/LeLunZ) in [#&#8203;26614](immich-app/immich#26614)
- feat(mobile): open in browser by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in [#&#8203;26369](immich-app/immich#26369)

##### 🌟 Enhancements

- feat: verify permissions by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;25647](immich-app/immich#25647)
- feat(web): change link expiration logic & presets  by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in [#&#8203;26064](immich-app/immich#26064)
- feat(mobile): dynamic layout in new timeline by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;23837](immich-app/immich#23837)
- feat(cli): change progress bar to display file size by [@&#8203;Nykri](https://github.com/Nykri) in [#&#8203;23328](immich-app/immich#23328)
- feat(mobile): dynamic multi-line album name by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26040](immich-app/immich#26040)
- feat(mobile): hide search by context/OCR if disabled on server ([#&#8203;25472](immich-app/immich#25472)) by [@&#8203;Nacolis](https://github.com/Nacolis) in [#&#8203;26063](immich-app/immich#26063)
- fix(release): add docker-compose.rootless.yml to released assets by [@&#8203;dnozay](https://github.com/dnozay) in [#&#8203;26261](immich-app/immich#26261)
- feat(web): show ocr text boxes in panoramas by [@&#8203;meesfrensel](https://github.com/meesfrensel) in [#&#8203;25727](immich-app/immich#25727)
- feat(web): loop chromecast video by [@&#8203;etnoy](https://github.com/etnoy) in [#&#8203;24410](immich-app/immich#24410)
- chore(web): merge "Add to album" and "Add to shared album" actions into a single action by [@&#8203;timonrieger](https://github.com/timonrieger) in [#&#8203;24669](immich-app/immich#24669)
- feat(mobile): timeline - add bottomWidgetBuilder  by [@&#8203;PeterOmbodi](https://github.com/PeterOmbodi) in [#&#8203;25634](immich-app/immich#25634)
- feat(mobile): video zooming in asset viewer by [@&#8203;goalie2002](https://github.com/goalie2002) in [#&#8203;22036](immich-app/immich#22036)
- feat(mobile): Add slug support for shared links by [@&#8203;Lauritz-Tieste](https://github.com/Lauritz-Tieste) in [#&#8203;26441](immich-app/immich#26441)
- feat: warn when losing transparency during thumbnail generation by [@&#8203;midzelis](https://github.com/midzelis) in [#&#8203;26243](immich-app/immich#26243)
- perf(mobile): optimized album sorting by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in [#&#8203;25179](immich-app/immich#25179)
- feat(mobile): prompt when deleting from trash by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in [#&#8203;26392](immich-app/immich#26392)
- feat: getAssetEdits respond with edit IDs by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;26445](immich-app/immich#26445)
- fix(server): accept showAt and hideAt for creating memories by [@&#8203;meesfrensel](https://github.com/meesfrensel) in [#&#8203;26429](immich-app/immich#26429)
- feat(server): SyncAssetEditV1 by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;26446](immich-app/immich#26446)
- feat: splash screen error page by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;26460](immich-app/immich#26460)
- feat(mobile): add confirmation dialog to permanent delete action by [@&#8203;ByteSizedMarius](https://github.com/ByteSizedMarius) in [#&#8203;26442](immich-app/immich#26442)
- feat: enhance face-editor positioning by [@&#8203;midzelis](https://github.com/midzelis) in [#&#8203;26303](immich-app/immich#26303)
- feat: improve HEIC, HEIF and JPEG XL browser support detection by [@&#8203;nicosemp](https://github.com/nicosemp) in [#&#8203;26122](immich-app/immich#26122)
- refactor(web): remove replaceAsset action by [@&#8203;timonrieger](https://github.com/timonrieger) in [#&#8203;26444](immich-app/immich#26444)
- feat(web): bounding box for faces when hovering over the face in photo view by [@&#8203;cratoo](https://github.com/cratoo) in [#&#8203;26667](immich-app/immich#26667)
- feat(mobile): keep search results visible by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26498](immich-app/immich#26498)
- feat(mobile): use shared native client by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;25942](immich-app/immich#25942)
- feat(mobile): SyncAssetEditV1 by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;26518](immich-app/immich#26518)
- feat(ml): enable openvino for cpu by [@&#8203;apejcic](https://github.com/apejcic) in [#&#8203;22948](immich-app/immich#22948)
- feat: responsive video duration in thumbnail by [@&#8203;midzelis](https://github.com/midzelis) in [#&#8203;26770](immich-app/immich#26770)
- feat(web): animate zoom toggle with cubicOut easing by [@&#8203;midzelis](https://github.com/midzelis) in [#&#8203;26731](immich-app/immich#26731)
- feat(mobile): consolidate video controls by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26673](immich-app/immich#26673)
- feat(web): add shortcut "p" to open/close the face tag box by [@&#8203;cratoo](https://github.com/cratoo) in [#&#8203;26826](immich-app/immich#26826)
- feat(mobile): use material design 3 slider by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26829](immich-app/immich#26829)
- feat: adaptive progressive image loading for photo viewer by [@&#8203;midzelis](https://github.com/midzelis) in [#&#8203;26636](immich-app/immich#26636)
- fix(server): extract make/model from sony video files by [@&#8203;brendanngo](https://github.com/brendanngo) in [#&#8203;26833](immich-app/immich#26833)
- chore(mobile): remove background from asset viewer back button by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26851](immich-app/immich#26851)
- feat(server): support IDPs that only send the userinfo in the ID token by [@&#8203;Belnadifia](https://github.com/Belnadifia) in [#&#8203;26717](immich-app/immich#26717)
- feat(web): improve OCR overlay text fitting, reactivity, and accessibility by [@&#8203;midzelis](https://github.com/midzelis) in [#&#8203;26678](immich-app/immich#26678)
- fix(web): allow pasting PIN code from clipboard or password manager by [@&#8203;pressslav](https://github.com/pressslav) in [#&#8203;26944](immich-app/immich#26944)

##### 🐛 Bug fixes

- fix: ignore checksum constraint error when logging by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;26113](immich-app/immich#26113)
- fix(web): use locale for date picker by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26125](immich-app/immich#26125)
- fix(web): escape shortcut handling by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26096](immich-app/immich#26096)
- fix(mobile): Login routing on Splash screen by [@&#8203;PeterOmbodi](https://github.com/PeterOmbodi) in [#&#8203;26128](immich-app/immich#26128)
- fix: null local date time in timeline queries by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;26133](immich-app/immich#26133)
- fix(web): prevent event manager from throwing error by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26156](immich-app/immich#26156)
- fix(web): improve api key modal responsiveness by [@&#8203;klenner1](https://github.com/klenner1) in [#&#8203;26151](immich-app/immich#26151)
- fix(web): show correct assets in memory gallery by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26157](immich-app/immich#26157)
- fix(web): add missing [@&#8203;immich/ui](https://github.com/immich/ui) translations by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26143](immich-app/immich#26143)
- fix(mobile): timeline handling on foldable phones + ensuring that images are not cut off by [@&#8203;bkchr](https://github.com/bkchr) in [#&#8203;25088](immich-app/immich#25088)
- fix(mobile): prevent nav bar label text wrapping by [@&#8203;chrislongros](https://github.com/chrislongros) in [#&#8203;26011](immich-app/immich#26011)
- fix(mobile): hide latest version warnings by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26036](immich-app/immich#26036)
- fix(mobile): inconsistent query for people by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in [#&#8203;24437](immich-app/immich#24437)
- fix(web): timeline multi select group state by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26180](immich-app/immich#26180)
- fix(web): add checkerboard background for transparent images by [@&#8203;agent-steven](https://github.com/agent-steven) in [#&#8203;26091](immich-app/immich#26091)
- fix(mobile): inherit toolbar opacity by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;25694](immich-app/immich#25694)
- fix(web): focus tag input when modal opens by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26256](immich-app/immich#26256)
- fix(web): clear face boxes when switching assets by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26249](immich-app/immich#26249)
- fix(web): clear unsaved asset description when changing asset by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26255](immich-app/immich#26255)
- fix(web): clear cache when asset changes by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26257](immich-app/immich#26257)
- fix: utc time zone upserts by [@&#8203;danieldietzler](https://github.com/danieldietzler) in [#&#8203;26258](immich-app/immich#26258)
- fix: metadata crash by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;26327](immich-app/immich#26327)
- fix: prevent server crash when extraction of metadata fails if the assets are corrupted by [@&#8203;Devansh-Jani](https://github.com/Devansh-Jani) in [#&#8203;26042](immich-app/immich#26042)
- fix(server): db restore failure when `DB_URL` is set to unix-domain socket connection by [@&#8203;fabio-garavini](https://github.com/fabio-garavini) in [#&#8203;26252](immich-app/immich#26252)
- fix: Download the edited version when downloading multiple photos by [@&#8203;MontejoJorge](https://github.com/MontejoJorge) in [#&#8203;26259](immich-app/immich#26259)
- fix: include `DROP INDEX` in transaction to prevent missing index on rollback by [@&#8203;haoxi911](https://github.com/haoxi911) in [#&#8203;25399](immich-app/immich#25399)
- fix: safari address bar color by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;26346](immich-app/immich#26346)
- fix(web): prevent panorama image reload during asset updates by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26349](immich-app/immich#26349)
- fix(web): favoriting assets opened via GalleryViewer by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26350](immich-app/immich#26350)
- fix(i18n): add translation key for partner's photos by [@&#8203;timonrieger](https://github.com/timonrieger) in [#&#8203;26348](immich-app/immich#26348)
- fix(web): single select scroll behavior by [@&#8203;timonrieger](https://github.com/timonrieger) in [#&#8203;26358](immich-app/immich#26358)
- perf: add indexes to improve People API response times by [@&#8203;bxtdvd](https://github.com/bxtdvd) in [#&#8203;26337](immich-app/immich#26337)
- fix: pin code reset modal by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;26370](immich-app/immich#26370)
- fix(mobile): Reset "People" search filter chip if no selections are made by [@&#8203;benjamonnguyen](https://github.com/benjamonnguyen) in [#&#8203;26267](immich-app/immich#26267)
- fix(cli): delete sidecar files after upload if requested by [@&#8203;timonrieger](https://github.com/timonrieger) in [#&#8203;26353](immich-app/immich#26353)
- fix(web): album description auto height by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26420](immich-app/immich#26420)
- fix(web): prevent side panel overlap during transition by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26398](immich-app/immich#26398)
- fix(web): storage template example by [@&#8203;mmomjian](https://github.com/mmomjian) in [#&#8203;26424](immich-app/immich#26424)
- fix(web): prevent `state_unsafe_mutation` error on people page by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26438](immich-app/immich#26438)
- fix: missing deletedAt and isVisible columns on mobile by [@&#8203;bwees](https://github.com/bwees) in [#&#8203;26414](immich-app/immich#26414)
- fix(mobile): joinLocal on archived timeline by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in [#&#8203;26387](immich-app/immich#26387)
- fix: always show library scan button by [@&#8203;etnoy](https://github.com/etnoy) in [#&#8203;26428](immich-app/immich#26428)
- fix: retain asset when either asset is a favorite by [@&#8203;shenlong-tanwen](https://github.com/shenlong-tanwen) in [#&#8203;26473](immich-app/immich#26473)
- fix(web): prevent null folder tree on concurrent load by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26489](immich-app/immich#26489)
- fix(web): toast warning when trying to upload unsupported file type by [@&#8203;meesfrensel](https://github.com/meesfrensel) in [#&#8203;26492](immich-app/immich#26492)
- fix(mobile): birthday picker shows limited months when no date exists by [@&#8203;socksprox](https://github.com/socksprox) in [#&#8203;26407](immich-app/immich#26407)
- fix: consider DAR when extracting video dimension by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;25293](immich-app/immich#25293)
- feat(mobile): Prevent premature image cache eviction when higher image loading is enabled by [@&#8203;LeLunZ](https://github.com/LeLunZ) in [#&#8203;26208](immich-app/immich#26208)
- refactor: star rating by [@&#8203;meesfrensel](https://github.com/meesfrensel) in [#&#8203;26357](immich-app/immich#26357)
- fix(mobile): set correct initial system-ui mode in asset viewer by [@&#8203;goalie2002](https://github.com/goalie2002) in [#&#8203;26500](immich-app/immich#26500)
- fix(server): Live Photo migration bug when album is in template by [@&#8203;NikhilAlapati](https://github.com/NikhilAlapati) in [#&#8203;25329](immich-app/immich#25329)
- fix(web): handle delete shortcut on shared link page as remove by [@&#8203;meesfrensel](https://github.com/meesfrensel) in [#&#8203;26552](immich-app/immich#26552)
- fix(mobile): prevent video player from being recreated unnecessarily by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26553](immich-app/immich#26553)
- fix(mobile): don't cut off top corners of app bar by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26550](immich-app/immich#26550)
- feat: update onnxruntime-openvino to 1.24.1 and intel drivers by [@&#8203;savely-krasovsky](https://github.com/savely-krasovsky) in [#&#8203;26565](immich-app/immich#26565)
- fix: hide download action for local/merged assets by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in [#&#8203;26461](immich-app/immich#26461)
- fix(web): top bar z index on search page by [@&#8203;YarosMallorca](https://github.com/YarosMallorca) in [#&#8203;26582](immich-app/immich#26582)
- fix(web): show shared link download button when logged in by [@&#8203;Snowknight26](https://github.com/Snowknight26) in [#&#8203;26629](immich-app/immich#26629)
- fix(mobile): asset viewer hero animation by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26545](immich-app/immich#26545)
- fix(web): timeline and asset viewer RTL support by [@&#8203;meesfrensel](https://github.com/meesfrensel) in [#&#8203;26513](immich-app/immich#26513)
- fix(server): clean up edited thumbnail when deleting asset by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26664](immich-app/immich#26664)
- fix: implement existing withStacked on searchAssetBuilder by [@&#8203;babbitt](https://github.com/babbitt) in [#&#8203;26607](immich-app/immich#26607)
- fix(mobile): video state by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26574](immich-app/immich#26574)
- fix(maintenance mode): wait for valid server config on restart by [@&#8203;insertish](https://github.com/insertish) in [#&#8203;26456](immich-app/immich#26456)
- fix(web): inconsistent asset nav bar state after visiting shared link by [@&#8203;Snowknight26](https://github.com/Snowknight26) in [#&#8203;26674](immich-app/immich#26674)
- fix(web): download toast showing wrong filename for motion assets by [@&#8203;Snowknight26](https://github.com/Snowknight26) in [#&#8203;26689](immich-app/immich#26689)
- fix(mobile): add safe area for asset details by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26675](immich-app/immich#26675)
- fix(web): combobox dropdown positioning in modals by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26707](immich-app/immich#26707)
- fix(web): video stealing focus when it plays again when looping by [@&#8203;Snowknight26](https://github.com/Snowknight26) in [#&#8203;26704](immich-app/immich#26704)
- fix(ml): batch size setting by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;26524](immich-app/immich#26524)
- fix(server): clarify transcoding bitrate policy by [@&#8203;meesfrensel](https://github.com/meesfrensel) in [#&#8203;26711](immich-app/immich#26711)
- fix: playback style migration by [@&#8203;alextran1502](https://github.com/alextran1502) in [#&#8203;26718](immich-app/immich#26718)
- fix(web): asset viewer showing wrong viewer type when hovering on stack thumbnails by [@&#8203;Snowknight26](https://github.com/Snowknight26) in [#&#8203;26741](immich-app/immich#26741)
- fix(server): opus handling as accepted audio codec in transcode policy by [@&#8203;skatsubo](https://github.com/skatsubo) in [#&#8203;26736](immich-app/immich#26736)
- fix(web): refresh recent albums sidebar after album changes by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26757](immich-app/immich#26757)
- fix(web): show the correct cursor at crop bounds when editing an asset by [@&#8203;Snowknight26](https://github.com/Snowknight26) in [#&#8203;26748](immich-app/immich#26748)
- fix(web): recalculate face bounding boxes by [@&#8203;cratoo](https://github.com/cratoo) in [#&#8203;26737](immich-app/immich#26737)
- fix(web): context menu overflow by [@&#8203;SevereCloud](https://github.com/SevereCloud) in [#&#8203;26760](immich-app/immich#26760)
- fix(web): correct tag rounding in search options by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26814](immich-app/immich#26814)
- fix(web): prevent unrelated assets from appearing in tag view by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26816](immich-app/immich#26816)
- fix(mobile): use tabular figures in backup page by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26830](immich-app/immich#26830)
- fix(mobile): wrap backup error message text by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26834](immich-app/immich#26834)
- fix(server): use correct day ordering in timeline buckets by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26821](immich-app/immich#26821)
- fix(web): face selection box position resetting on browser resize by [@&#8203;Snowknight26](https://github.com/Snowknight26) in [#&#8203;26766](immich-app/immich#26766)
- fix: use correct original URL for 360 video panorama playback by [@&#8203;luis15pt](https://github.com/luis15pt) in [#&#8203;26831](immich-app/immich#26831)
- fix(web): disable drag and drop for internal items by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26897](immich-app/immich#26897)
- fix(web): keep header fixed on individual shared links by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26892](immich-app/immich#26892)
- fix: SMTP over TLS by [@&#8203;nathanielhourt](https://github.com/nathanielhourt) in [#&#8203;26893](immich-app/immich#26893)
- fix(web): copy yearMonth in MonthGroup to avoid shared object reference with asset in [#&#8203;26890](immich-app/immich#26890)
- fix(mobile): use shared auth for background\_downloader by [@&#8203;mertalev](https://github.com/mertalev) in [#&#8203;26911](immich-app/immich#26911)
- fix(web): prevent search page error on missing album filter by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26948](immich-app/immich#26948)
- fix(server): sync files to disk by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26881](immich-app/immich#26881)
- fix(web): jump to primary stacked asset from memory by [@&#8203;michelheusschen](https://github.com/michelheusschen) in [#&#8203;26978](immich-app/immich#26978)
- fix(mobile): reflect asset deletions instantly by [@&#8203;uhthomas](https://github.com/uhthomas) in [#&#8203;26835](immich-app/immich#26835)
- fix: healthcheck by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;26989](immich-app/immich#26989)
- fix(web): escape handling for tagging and adding a face in asset viewer by [@&#8203;cratoo](https://github.com/cratoo) in [#&#8203;26870](immich-app/immich#26870)
- fix: filter after searching by asset id by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;26994](immich-app/immich#26994)
- fix: bounding box return type by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;27014](immich-app/immich#27014)
- fix: validate accept header before returning html by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;27019](immich-app/immich#27019)

##### 📚 Documentation

- chore(docs): Update help channel for developers by [@&#8203;Mraedis](https://github.com/Mraedis) in [#&#8203;26284](immich-app/immich#26284)
- feat(docs): Explain configuration file location for Docker Compose by [@&#8203;keunes](https://github.com/keunes) in [#&#8203;24989](immich-app/immich#24989)
- chore(docs): add quick-start guide for DevPod with docker by [@&#8203;dhlavaty](https://github.com/dhlavaty) in [#&#8203;26213](immich-app/immich#26213)
- feat(docs): Adding information about parameter c= by [@&#8203;aviv926](https://github.com/aviv926) in [#&#8203;26430](https://github.com/immich-app/immich/pull/26430)
- feat: doc links by [@&#8203;jrasm91](https://github.com/jrasm91) in [#&#8203;26519](https://github.com/immich-app/immich/pull/26519)
- fix(docs): add ocr to job flow diagram by [@&#8203;niij](https://github.com/niij) in [#&#8203;26505](https://github.com/immich-app/immich/pull/26505)

##### 🌐 Translations

- chore(web): update translations by [@&#8203;weblate](https://github.com/weblate) in [#&#8203;26118](https://github.com/immich-app/immich/pull/26118)
- fix: clarify external domain setting is used for emails too by [@&#8203;chrislongros](https://github.com/chrislongros) in [#&#8203;26009](https://github.com/immich-app/immich/pull/26009)
- chore(web): update translations by [@&#8203;weblate](https://github.com/weblate) in [#&#8203;26167](https://github.com/immich-app/immich/pull/26167)
- fix(web): error page i18n by [@&#8203;meesfrensel](https://github.com/meesfrensel) in [#&#8203;26517](https://github.com/immich-app/immich/pull/26517)
- chore(web): clarify locale settings description by [@&#8203;meesfrensel](https://github.com/meesfrensel) in [#&#8203;25562](https://github.com/immich-app/immich/pull/25562)
- chore(web): update translations by [@&#8203;weblate](https://github.com/weblate) in [#&#8203;26192](https://github.com/immich-app/immich/pull/26192)

#### New Contributors

- [@&#8203;klenner1](https://github.com/klenner1) made their first contribution in [#&#8203;26151](immich-app/immich#26151)
- [@&#8203;bkchr](https://github.com/bkchr) made their first contribution in [#&#8203;25088](immich-app/immich#25088)
- [@&#8203;chrislongros](https://github.com/chrislongros) made their first contribution in [#&#8203;26011](immich-app/immich#26011)
- [@&#8203;agent-steven](https://github.com/agent-steven) made their first contribution in [#&#8203;26091](immich-app/immich#26091)
- [@&#8203;dhlavaty](https://github.com/dhlavaty) made their first contribution in [#&#8203;26238](https://github.com/immich-app/immich/pull/26238)
- [@&#8203;Nacolis](https://github.com/Nacolis) made their first contribution in [#&#8203;26063](immich-app/immich#26063)
- [@&#8203;ewinnd](https://github.com/ewinnd) made their first contribution in [#&#8203;26277](https://github.com/immich-app/immich/pull/26277)
- [@&#8203;dnozay](https://github.com/dnozay) made their first contribution in [#&#8203;26261](immich-app/immich#26261)
- [@&#8203;keunes](https://github.com/keunes) made their first contribution in [#&#8203;24989](immich-app/immich#24989)
- [@&#8203;Devansh-Jani](https://github.com/Devansh-Jani) made their first contribution in [#&#8203;26042](immich-app/immich#26042)
- [@&#8203;benjamonnguyen](https://github.com/benjamonnguyen) made their first contribution in [#&#8203;26196](immich-app/immich#26196)
- [@&#8203;fabio-garavini](https://github.com/fabio-garavini) made their first contribution in [#&#8203;26252](immich-app/immich#26252)
- [@&#8203;haoxi911](https://github.com/haoxi911) made their first contribution in [#&#8203;25399](immich-app/immich#25399)
- [@&#8203;thezeroalpha](https://github.com/thezeroalpha) made their first contribution in [#&#8203;20286](immich-app/immich#20286)
- [@&#8203;socksprox](https://github.com/socksprox) made their first contribution in [#&#8203;26407](immich-app/immich#26407)
- [@&#8203;kprinssu](https://github.com/kprinssu) made their first contribution in [#&#8203;26178](immich-app/immich#26178)
- [@&#8203;babbitt](https://github.com/babbitt) made their first contribution in [#&#8203;26607](immich-app/immich#26607)
- [@&#8203;niij](https://github.com/niij) made their first contribution in [#&#8203;26505](https://github.com/immich-app/immich/pull/26505)
- [@&#8203;cratoo](https://github.com/cratoo) made their first contribution in [#&#8203;26667](immich-app/immich#26667)
- [@&#8203;M123-dev](https://github.com/M123-dev) made their first contribution in [#&#8203;26630](https://github.com/immich-app/immich/pull/26630)
- [@&#8203;apejcic](https://github.com/apejcic) made their first contribution in [#&#8203;22948](immich-app/immich#22948)
- [@&#8203;SevereCloud](https://github.com/SevereCloud) made their first contribution in [#&#8203;26760](immich-app/immich#26760)
- [@&#8203;brendanngo](https://github.com/brendanngo) made their first contribution in [#&#8203;26833](immich-app/immich#26833)
- [@&#8203;luis15pt](https://github.com/luis15pt) made their first contribution in [#&#8203;26831](immich-app/immich#26831)
- [@&#8203;nathanielhourt](https://github.com/nathanielhourt) made their first contribution in [#&#8203;26893](immich-app/immich#26893)
- [@&#8203;Belnadifia](https://github.com/Belnadifia) made their first contribution in [#&#8203;26717](immich-app/immich#26717)
- [@&#8203;pressslav](https://github.com/pressslav) made their first contribution in [#&#8203;26944](immich-app/immich#26944)

**Full Changelog**: <immich-app/immich@v2.5.6...v2.6.0>

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My41OS4yIiwidXBkYXRlZEluVmVyIjoiNDMuNTkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW1hZ2UiXX0=-->

Reviewed-on: https://gitea.alexlebens.dev/alexlebens/infrastructure/pulls/4887
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
renovate bot added a commit to sdwilsh/ansible-playbooks that referenced this pull request Mar 21, 2026
##### [\`v2.6.1\`](https://github.com/immich-app/immich/releases/tag/v2.6.1)

##### v2.6.1

##### Hot fixes

- Fixed a failed migration issue on the mobile app when the URL Switching feature is used

##### What's Changed

##### 🐛 Bug fixes

- fix(server): fallback to email when name is empty by [@jrasm91](https://github.com/jrasm91) in [#27016](immich-app/immich#27016)
- fix: ignore errors deleting untitled album by [@jrasm91](https://github.com/jrasm91) in [#27020](immich-app/immich#27020)
- fix(web): wrap long album title by [@jrasm91](https://github.com/jrasm91) in [#27012](immich-app/immich#27012)
- fix(web): stop in-progress uploads on logout by [@jrasm91](https://github.com/jrasm91) in [#27021](immich-app/immich#27021)
- fix: writing empty exif tags by [@danieldietzler](https://github.com/danieldietzler) in [#27025](immich-app/immich#27025)
- fix(web): disable send button by [@jrasm91](https://github.com/jrasm91) in [#27051](immich-app/immich#27051)
- fix(mobile): server url migration by [@mertalev](https://github.com/mertalev) in [#27050](immich-app/immich#27050)

**Full Changelog**: <immich-app/immich@v2.6.0...v2.6.1>

---
##### [\`v2.6.0\`](https://github.com/immich-app/immich/releases/tag/v2.6.0)

##### v2.6.0

Welcome to Immich `v2.6.0`, This release is a collection of more than *350 commits over 6 weeks*. I know, it is an eternity between releases compared to our previous era. This version focuses on bug fixes and enhancements across the app to provide a more delightful and smoother experience to you. This release also prepares for the next major release in the coming month, which will remove the old timeline implementation. Let's dive into the highlights of the release:

> \[!WARNING]
> For those who are still using the old timeline, please switch to the new timeline to avoid interruption, as the old timeline will be removed in the next release.
>
> ps: The old timeline has an exclamation icon next to the logo. <img width="525" height="120" alt="image" src="https://github.com/user-attachments/assets/ed36ea22-b16e-472f-961c-c19501712ba5" />

##### Highlights

- Map side panel (web)
- Pick album cover (mobile)
- Shared link slugs (mobile)
- Shared link presets (web)
- Native HTTP clients (mobile)
- Video player and asset viewer improvements (mobile)
- Improved search results (mobile)
- `schema-check`: a new `immich-admin` command
- Read profile claims from ID token (OAuth)
- Notable fix: cast videos now automatically loop
- Notable fix: correctly extract make and model from Sony XAVC video files
- Notable fix: escape key handling on web
- Notable fix: healthcheck endpoint in maintenance mode
- Notable fix: timeline rendering for RTL languages like Arabic and Hebrew
- Notable fix: prevent server crash when extracting invalid metadata

##### Map side panel (web)

The map view on the web now opens a mini-timeline component as a side panel when you click on a cluster of assets. This makes it easier to view the cluster at a glance and enables bulk actions, such as adding to favorites and adding to an album.

<img width="800" alt="image" src="https://github.com/user-attachments/assets/6f90b04d-4aa7-4f68-b59c-c2b912e638f7" />
##### Pick album cover (mobile)

Users can now pick a new album cover directly from the mobile app.

<https://github.com/user-attachments/assets/7f99dc80-21c6-4ce6-9f75-8e6b0163dcaa>

##### Shared link slugs (mobile)

The mobile app now also supports setting a shared link slug, a feature that's been available on the web for a while.

<https://github.com/user-attachments/assets/5420995a-cfd4-471d-a3ac-db4fa45de780>

##### Shared link presets (web)

The expiration form input on the web was always a bit confusing, but it's been updated to make it easier to see and understand when a shared link will expire.

<img width="400" alt="image" src="https://github.com/user-attachments/assets/9d6124a9-eec2-43e8-b228-e1ac6c0415e8" />
##### Native HTTP clients (mobile)

The mobile app now uses native HTTP clients across both Android and iOS, with support for mTLS, self-signed certificates, basic auth, and custom headers. These features should now be more reliable and extend to background tasks, video playback, and other parts of the app. This also improves the app's overall network request performance thanks to HTTP/2 and HTTP/3, multiplexing, and caching.

##### Video player and asset viewer improvements (mobile)

The asset viewer has undergone many improvements under the hood to make it simpler, faster and more reliable. We've also added playback support for GIFs, enabled video zooming, and made many more bug fixes and tweaks.

##### The asset viewer now uses a gradient for actions, and video controls have been restyled

<img width="300" alt="image" src="https://github.com/user-attachments/assets/9a4e0892-f178-45fc-812c-10a6cba3f48b" />
##### Inline asset details

This used to be a bottom sheet and had a lot of glue for alignment. The new version is much more responsive and less buggy.

##### Before

<https://github.com/user-attachments/assets/43b59b59-7d6a-48d0-94d7-84b8cae1c2a9>

##### After

<https://github.com/user-attachments/assets/9217b6f4-1c92-40b0-bd95-a0681307cf38>

##### Improved search results (mobile)

The search results page now loads more results without rebuilding the entire grid, and should now load much faster. There are also new screens for when there are no search results and when all results have been loaded.

<https://github.com/user-attachments/assets/42ce69d4-1618-48ee-9cb9-91ec22e12b27>

##### `schema-check`: a new `immich-admin` command

A new `immich-admin` command has been added in this release: `schema-check`. The command runs a report on the database to check if any indexes, constraints, tables, or columns are missing. This check also runs automatically on startup.

##### Read profile claims from `idToken` (OAuth)

Prior to `v2.6.0`, Immich resolved the `email` and other claims from the [userinfo](https://openid.net/specs/openid-connect-core-1_0.html#UserInfo) endpoint. Now, Immich also supports reading those claims directly from the `idToken`. This makes it possible to use providers such as Microsoft ADFS that do not support the userinfo endpoint.

***

As always, there are many more QoL improvements, bug fixes, and enhancements in this release. Please find the full release note below

##### Support Immich

<p align="center">

<img src="https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExbjY2eWc5Y2F0ZW56MmR4aWE0dDhzZXlidXRmYWZyajl1bWZidXZpcyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/87CKDqErVfMqY/giphy.gif" width="450" title="SUPPORT THE PROJECT!"> 

</p>

If you find the project helpful, you can support Immich by purchasing a product key at <https://buy.immich.app> or our merchandise at <https://immich.store>

***

<!-- Release notes generated using configuration in .github/release.yml at v2.6.0 -->

##### What's Changed

##### 🔒 Security

- fix(server): restrict individual shared link asset removal to owners by [@michelheusschen](https://github.com/michelheusschen) in [#26868](immich-app/immich#26868)
- fix: add to shared link by [@jrasm91](https://github.com/jrasm91) in [#26886](immich-app/immich#26886)

##### 🚀 Features

- feat: shared link login by [@jrasm91](https://github.com/jrasm91) in [#25678](immich-app/immich#25678)
- feat: schema-check by [@jrasm91](https://github.com/jrasm91) in [#25904](immich-app/immich#25904)
- feat: add people deeplink by [@arne182](https://github.com/arne182) in [#25686](immich-app/immich#25686)
- feat(mobile): inline asset details by [@uhthomas](https://github.com/uhthomas) in [#25952](immich-app/immich#25952)
- feat(mobile): filter by tags by [@benjamonnguyen](https://github.com/benjamonnguyen) in [#26196](immich-app/immich#26196)
- feat: add .mxf file support by [@timonrieger](https://github.com/timonrieger) in [#24644](immich-app/immich#24644)
- feat: tap to see next/previous image by [@thezeroalpha](https://github.com/thezeroalpha) in [#20286](immich-app/immich#20286)
- feat(mobile): Allow users to set album cover from mobile app by [@timonrieger](https://github.com/timonrieger) in [#25515](immich-app/immich#25515)
- feat(mobile): Allow users to set profile picture from asset viewer by [@timonrieger](https://github.com/timonrieger) in [#25517](immich-app/immich#25517)
- feat: ROCm 7.2 and MIGraphX support  by [@kprinssu](https://github.com/kprinssu) in [#26178](immich-app/immich#26178)
- feat(web): map timeline sidepanel by [@michelheusschen](https://github.com/michelheusschen) in [#26532](immich-app/immich#26532)
- feat: add responsive layout to broken asset by [@midzelis](https://github.com/midzelis) in [#26384](immich-app/immich#26384)
- feat(web): toggle zoom on double-click in photo viewer by [@midzelis](https://github.com/midzelis) in [#26732](immich-app/immich#26732)
- feat(mobile): show animated images in asset viewer by [@LeLunZ](https://github.com/LeLunZ) in [#26614](immich-app/immich#26614)
- feat(mobile): open in browser by [@YarosMallorca](https://github.com/YarosMallorca) in [#26369](immich-app/immich#26369)

##### 🌟 Enhancements

- feat: verify permissions by [@jrasm91](https://github.com/jrasm91) in [#25647](immich-app/immich#25647)
- feat(web): change link expiration logic & presets  by [@YarosMallorca](https://github.com/YarosMallorca) in [#26064](immich-app/immich#26064)
- feat(mobile): dynamic layout in new timeline by [@shenlong-tanwen](https://github.com/shenlong-tanwen) in [#23837](immich-app/immich#23837)
- feat(cli): change progress bar to display file size by [@Nykri](https://github.com/Nykri) in [#23328](immich-app/immich#23328)
- feat(mobile): dynamic multi-line album name by [@uhthomas](https://github.com/uhthomas) in [#26040](immich-app/immich#26040)
- feat(mobile): hide search by context/OCR if disabled on server ([#25472](immich-app/immich#25472)) by [@Nacolis](https://github.com/Nacolis) in [#26063](immich-app/immich#26063)
- fix(release): add docker-compose.rootless.yml to released assets by [@dnozay](https://github.com/dnozay) in [#26261](immich-app/immich#26261)
- feat(web): show ocr text boxes in panoramas by [@meesfrensel](https://github.com/meesfrensel) in [#25727](immich-app/immich#25727)
- feat(web): loop chromecast video by [@etnoy](https://github.com/etnoy) in [#24410](immich-app/immich#24410)
- chore(web): merge "Add to album" and "Add to shared album" actions into a single action by [@timonrieger](https://github.com/timonrieger) in [#24669](immich-app/immich#24669)
- feat(mobile): timeline - add bottomWidgetBuilder  by [@PeterOmbodi](https://github.com/PeterOmbodi) in [#25634](immich-app/immich#25634)
- feat(mobile): video zooming in asset viewer by [@goalie2002](https://github.com/goalie2002) in [#22036](immich-app/immich#22036)
- feat(mobile): Add slug support for shared links by [@Lauritz-Tieste](https://github.com/Lauritz-Tieste) in [#26441](immich-app/immich#26441)
- feat: warn when losing transparency during thumbnail generation by [@midzelis](https://github.com/midzelis) in [#26243](immich-app/immich#26243)
- perf(mobile): optimized album sorting by [@YarosMallorca](https://github.com/YarosMallorca) in [#25179](immich-app/immich#25179)
- feat(mobile): prompt when deleting from trash by [@YarosMallorca](https://github.com/YarosMallorca) in [#26392](immich-app/immich#26392)
- feat: getAssetEdits respond with edit IDs by [@bwees](https://github.com/bwees) in [#26445](immich-app/immich#26445)
- fix(server): accept showAt and hideAt for creating memories by [@meesfrensel](https://github.com/meesfrensel) in [#26429](immich-app/immich#26429)
- feat(server): SyncAssetEditV1 by [@bwees](https://github.com/bwees) in [#26446](immich-app/immich#26446)
- feat: splash screen error page by [@shenlong-tanwen](https://github.com/shenlong-tanwen) in [#26460](immich-app/immich#26460)
- feat(mobile): add confirmation dialog to permanent delete action by [@ByteSizedMarius](https://github.com/ByteSizedMarius) in [#26442](immich-app/immich#26442)
- feat: enhance face-editor positioning by [@midzelis](https://github.com/midzelis) in [#26303](immich-app/immich#26303)
- feat: improve HEIC, HEIF and JPEG XL browser support detection by [@nicosemp](https://github.com/nicosemp) in [#26122](immich-app/immich#26122)
- refactor(web): remove replaceAsset action by [@timonrieger](https://github.com/timonrieger) in [#26444](immich-app/immich#26444)
- feat(web): bounding box for faces when hovering over the face in photo view by [@cratoo](https://github.com/cratoo) in [#26667](immich-app/immich#26667)
- feat(mobile): keep search results visible by [@uhthomas](https://github.com/uhthomas) in [#26498](immich-app/immich#26498)
- feat(mobile): use shared native client by [@mertalev](https://github.com/mertalev) in [#25942](immich-app/immich#25942)
- feat(mobile): SyncAssetEditV1 by [@bwees](https://github.com/bwees) in [#26518](immich-app/immich#26518)
- feat(ml): enable openvino for cpu by [@apejcic](https://github.com/apejcic) in [#22948](immich-app/immich#22948)
- feat: responsive video duration in thumbnail by [@midzelis](https://github.com/midzelis) in [#26770](immich-app/immich#26770)
- feat(web): animate zoom toggle with cubicOut easing by [@midzelis](https://github.com/midzelis) in [#26731](immich-app/immich#26731)
- feat(mobile): consolidate video controls by [@uhthomas](https://github.com/uhthomas) in [#26673](immich-app/immich#26673)
- feat(web): add shortcut "p" to open/close the face tag box by [@cratoo](https://github.com/cratoo) in [#26826](immich-app/immich#26826)
- feat(mobile): use material design 3 slider by [@uhthomas](https://github.com/uhthomas) in [#26829](immich-app/immich#26829)
- feat: adaptive progressive image loading for photo viewer by [@midzelis](https://github.com/midzelis) in [#26636](immich-app/immich#26636)
- fix(server): extract make/model from sony video files by [@brendanngo](https://github.com/brendanngo) in [#26833](immich-app/immich#26833)
- chore(mobile): remove background from asset viewer back button by [@uhthomas](https://github.com/uhthomas) in [#26851](immich-app/immich#26851)
- feat(server): support IDPs that only send the userinfo in the ID token by [@Belnadifia](https://github.com/Belnadifia) in [#26717](immich-app/immich#26717)
- feat(web): improve OCR overlay text fitting, reactivity, and accessibility by [@midzelis](https://github.com/midzelis) in [#26678](immich-app/immich#26678)
- fix(web): allow pasting PIN code from clipboard or password manager by [@pressslav](https://github.com/pressslav) in [#26944](immich-app/immich#26944)

##### 🐛 Bug fixes

- fix: ignore checksum constraint error when logging by [@jrasm91](https://github.com/jrasm91) in [#26113](immich-app/immich#26113)
- fix(web): use locale for date picker by [@michelheusschen](https://github.com/michelheusschen) in [#26125](immich-app/immich#26125)
- fix(web): escape shortcut handling by [@michelheusschen](https://github.com/michelheusschen) in [#26096](immich-app/immich#26096)
- fix(mobile): Login routing on Splash screen by [@PeterOmbodi](https://github.com/PeterOmbodi) in [#26128](immich-app/immich#26128)
- fix: null local date time in timeline queries by [@shenlong-tanwen](https://github.com/shenlong-tanwen) in [#26133](immich-app/immich#26133)
- fix(web): prevent event manager from throwing error by [@michelheusschen](https://github.com/michelheusschen) in [#26156](immich-app/immich#26156)
- fix(web): improve api key modal responsiveness by [@klenner1](https://github.com/klenner1) in [#26151](immich-app/immich#26151)
- fix(web): show correct assets in memory gallery by [@michelheusschen](https://github.com/michelheusschen) in [#26157](immich-app/immich#26157)
- fix(web): add missing [@immich/ui](https://github.com/immich/ui) translations by [@michelheusschen](https://github.com/michelheusschen) in [#26143](immich-app/immich#26143)
- fix(mobile): timeline handling on foldable phones + ensuring that images are not cut off by [@bkchr](https://github.com/bkchr) in [#25088](immich-app/immich#25088)
- fix(mobile): prevent nav bar label text wrapping by [@chrislongros](https://github.com/chrislongros) in [#26011](immich-app/immich#26011)
- fix(mobile): hide latest version warnings by [@uhthomas](https://github.com/uhthomas) in [#26036](immich-app/immich#26036)
- fix(mobile): inconsistent query for people by [@YarosMallorca](https://github.com/YarosMallorca) in [#24437](immich-app/immich#24437)
- fix(web): timeline multi select group state by [@michelheusschen](https://github.com/michelheusschen) in [#26180](immich-app/immich#26180)
- fix(web): add checkerboard background for transparent images by [@agent-steven](https://github.com/agent-steven) in [#26091](immich-app/immich#26091)
- fix(mobile): inherit toolbar opacity by [@uhthomas](https://github.com/uhthomas) in [#25694](immich-app/immich#25694)
- fix(web): focus tag input when modal opens by [@michelheusschen](https://github.com/michelheusschen) in [#26256](immich-app/immich#26256)
- fix(web): clear face boxes when switching assets by [@michelheusschen](https://github.com/michelheusschen) in [#26249](immich-app/immich#26249)
- fix(web): clear unsaved asset description when changing asset by [@michelheusschen](https://github.com/michelheusschen) in [#26255](immich-app/immich#26255)
- fix(web): clear cache when asset changes by [@michelheusschen](https://github.com/michelheusschen) in [#26257](immich-app/immich#26257)
- fix: utc time zone upserts by [@danieldietzler](https://github.com/danieldietzler) in [#26258](immich-app/immich#26258)
- fix: metadata crash by [@jrasm91](https://github.com/jrasm91) in [#26327](immich-app/immich#26327)
- fix: prevent server crash when extraction of metadata fails if the assets are corrupted by [@Devansh-Jani](https://github.com/Devansh-Jani) in [#26042](immich-app/immich#26042)
- fix(server): db restore failure when `DB_URL` is set to unix-domain socket connection by [@fabio-garavini](https://github.com/fabio-garavini) in [#26252](immich-app/immich#26252)
- fix: Download the edited version when downloading multiple photos by [@MontejoJorge](https://github.com/MontejoJorge) in [#26259](immich-app/immich#26259)
- fix: include `DROP INDEX` in transaction to prevent missing index on rollback by [@haoxi911](https://github.com/haoxi911) in [#25399](immich-app/immich#25399)
- fix: safari address bar color by [@jrasm91](https://github.com/jrasm91) in [#26346](immich-app/immich#26346)
- fix(web): prevent panorama image reload during asset updates by [@michelheusschen](https://github.com/michelheusschen) in [#26349](immich-app/immich#26349)
- fix(web): favoriting assets opened via GalleryViewer by [@michelheusschen](https://github.com/michelheusschen) in [#26350](immich-app/immich#26350)
- fix(i18n): add translation key for partner's photos by [@timonrieger](https://github.com/timonrieger) in [#26348](immich-app/immich#26348)
- fix(web): single select scroll behavior by [@timonrieger](https://github.com/timonrieger) in [#26358](immich-app/immich#26358)
- perf: add indexes to improve People API response times by [@bxtdvd](https://github.com/bxtdvd) in [#26337](immich-app/immich#26337)
- fix: pin code reset modal by [@jrasm91](https://github.com/jrasm91) in [#26370](immich-app/immich#26370)
- fix(mobile): Reset "People" search filter chip if no selections are made by [@benjamonnguyen](https://github.com/benjamonnguyen) in [#26267](immich-app/immich#26267)
- fix(cli): delete sidecar files after upload if requested by [@timonrieger](https://github.com/timonrieger) in [#26353](immich-app/immich#26353)
- fix(web): album description auto height by [@michelheusschen](https://github.com/michelheusschen) in [#26420](immich-app/immich#26420)
- fix(web): prevent side panel overlap during transition by [@michelheusschen](https://github.com/michelheusschen) in [#26398](immich-app/immich#26398)
- fix(web): storage template example by [@mmomjian](https://github.com/mmomjian) in [#26424](immich-app/immich#26424)
- fix(web): prevent `state_unsafe_mutation` error on people page by [@michelheusschen](https://github.com/michelheusschen) in [#26438](immich-app/immich#26438)
- fix: missing deletedAt and isVisible columns on mobile by [@bwees](https://github.com/bwees) in [#26414](immich-app/immich#26414)
- fix(mobile): joinLocal on archived timeline by [@YarosMallorca](https://github.com/YarosMallorca) in [#26387](immich-app/immich#26387)
- fix: always show library scan button by [@etnoy](https://github.com/etnoy) in [#26428](immich-app/immich#26428)
- fix: retain asset when either asset is a favorite by [@shenlong-tanwen](https://github.com/shenlong-tanwen) in [#26473](immich-app/immich#26473)
- fix(web): prevent null folder tree on concurrent load by [@michelheusschen](https://github.com/michelheusschen) in [#26489](immich-app/immich#26489)
- fix(web): toast warning when trying to upload unsupported file type by [@meesfrensel](https://github.com/meesfrensel) in [#26492](immich-app/immich#26492)
- fix(mobile): birthday picker shows limited months when no date exists by [@socksprox](https://github.com/socksprox) in [#26407](immich-app/immich#26407)
- fix: consider DAR when extracting video dimension by [@alextran1502](https://github.com/alextran1502) in [#25293](immich-app/immich#25293)
- feat(mobile): Prevent premature image cache eviction when higher image loading is enabled by [@LeLunZ](https://github.com/LeLunZ) in [#26208](immich-app/immich#26208)
- refactor: star rating by [@meesfrensel](https://github.com/meesfrensel) in [#26357](immich-app/immich#26357)
- fix(mobile): set correct initial system-ui mode in asset viewer by [@goalie2002](https://github.com/goalie2002) in [#26500](immich-app/immich#26500)
- fix(server): Live Photo migration bug when album is in template by [@NikhilAlapati](https://github.com/NikhilAlapati) in [#25329](immich-app/immich#25329)
- fix(web): handle delete shortcut on shared link page as remove by [@meesfrensel](https://github.com/meesfrensel) in [#26552](immich-app/immich#26552)
- fix(mobile): prevent video player from being recreated unnecessarily by [@uhthomas](https://github.com/uhthomas) in [#26553](immich-app/immich#26553)
- fix(mobile): don't cut off top corners of app bar by [@uhthomas](https://github.com/uhthomas) in [#26550](immich-app/immich#26550)
- feat: update onnxruntime-openvino to 1.24.1 and intel drivers by [@savely-krasovsky](https://github.com/savely-krasovsky) in [#26565](immich-app/immich#26565)
- fix: hide download action for local/merged assets by [@YarosMallorca](https://github.com/YarosMallorca) in [#26461](immich-app/immich#26461)
- fix(web): top bar z index on search page by [@YarosMallorca](https://github.com/YarosMallorca) in [#26582](immich-app/immich#26582)
- fix(web): show shared link download button when logged in by [@Snowknight26](https://github.com/Snowknight26) in [#26629](immich-app/immich#26629)
- fix(mobile): asset viewer hero animation by [@uhthomas](https://github.com/uhthomas) in [#26545](immich-app/immich#26545)
- fix(web): timeline and asset viewer RTL support by [@meesfrensel](https://github.com/meesfrensel) in [#26513](immich-app/immich#26513)
- fix(server): clean up edited thumbnail when deleting asset by [@michelheusschen](https://github.com/michelheusschen) in [#26664](immich-app/immich#26664)
- fix: implement existing withStacked on searchAssetBuilder by [@babbitt](https://github.com/babbitt) in [#26607](immich-app/immich#26607)
- fix(mobile): video state by [@uhthomas](https://github.com/uhthomas) in [#26574](immich-app/immich#26574)
- fix(maintenance mode): wait for valid server config on restart by [@insertish](https://github.com/insertish) in [#26456](immich-app/immich#26456)
- fix(web): inconsistent asset nav bar state after visiting shared link by [@Snowknight26](https://github.com/Snowknight26) in [#26674](immich-app/immich#26674)
- fix(web): download toast showing wrong filename for motion assets by [@Snowknight26](https://github.com/Snowknight26) in [#26689](immich-app/immich#26689)
- fix(mobile): add safe area for asset details by [@uhthomas](https://github.com/uhthomas) in [#26675](immich-app/immich#26675)
- fix(web): combobox dropdown positioning in modals by [@michelheusschen](https://github.com/michelheusschen) in [#26707](immich-app/immich#26707)
- fix(web): video stealing focus when it plays again when looping by [@Snowknight26](https://github.com/Snowknight26) in [#26704](immich-app/immich#26704)
- fix(ml): batch size setting by [@mertalev](https://github.com/mertalev) in [#26524](immich-app/immich#26524)
- fix(server): clarify transcoding bitrate policy by [@meesfrensel](https://github.com/meesfrensel) in [#26711](immich-app/immich#26711)
- fix: playback style migration by [@alextran1502](https://github.com/alextran1502) in [#26718](immich-app/immich#26718)
- fix(web): asset viewer showing wrong viewer type when hovering on stack thumbnails by [@Snowknight26](https://github.com/Snowknight26) in [#26741](immich-app/immich#26741)
- fix(server): opus handling as accepted audio codec in transcode policy by [@skatsubo](https://github.com/skatsubo) in [#26736](immich-app/immich#26736)
- fix(web): refresh recent albums sidebar after album changes by [@michelheusschen](https://github.com/michelheusschen) in [#26757](immich-app/immich#26757)
- fix(web): show the correct cursor at crop bounds when editing an asset by [@Snowknight26](https://github.com/Snowknight26) in [#26748](immich-app/immich#26748)
- fix(web): recalculate face bounding boxes by [@cratoo](https://github.com/cratoo) in [#26737](immich-app/immich#26737)
- fix(web): context menu overflow by [@SevereCloud](https://github.com/SevereCloud) in [#26760](immich-app/immich#26760)
- fix(web): correct tag rounding in search options by [@michelheusschen](https://github.com/michelheusschen) in [#26814](immich-app/immich#26814)
- fix(web): prevent unrelated assets from appearing in tag view by [@michelheusschen](https://github.com/michelheusschen) in [#26816](immich-app/immich#26816)
- fix(mobile): use tabular figures in backup page by [@uhthomas](https://github.com/uhthomas) in [#26830](immich-app/immich#26830)
- fix(mobile): wrap backup error message text by [@uhthomas](https://github.com/uhthomas) in [#26834](immich-app/immich#26834)
- fix(server): use correct day ordering in timeline buckets by [@michelheusschen](https://github.com/michelheusschen) in [#26821](immich-app/immich#26821)
- fix(web): face selection box position resetting on browser resize by [@Snowknight26](https://github.com/Snowknight26) in [#26766](immich-app/immich#26766)
- fix: use correct original URL for 360 video panorama playback by [@luis15pt](https://github.com/luis15pt) in [#26831](immich-app/immich#26831)
- fix(web): disable drag and drop for internal items by [@michelheusschen](https://github.com/michelheusschen) in [#26897](immich-app/immich#26897)
- fix(web): keep header fixed on individual shared links by [@michelheusschen](https://github.com/michelheusschen) in [#26892](immich-app/immich#26892)
- fix: SMTP over TLS by [@nathanielhourt](https://github.com/nathanielhourt) in [#26893](immich-app/immich#26893)
- fix(web): copy yearMonth in MonthGroup to avoid shared object reference with asset in [#26890](immich-app/immich#26890)
- fix(mobile): use shared auth for background\_downloader by [@mertalev](https://github.com/mertalev) in [#26911](immich-app/immich#26911)
- fix(web): prevent search page error on missing album filter by [@michelheusschen](https://github.com/michelheusschen) in [#26948](immich-app/immich#26948)
- fix(server): sync files to disk by [@uhthomas](https://github.com/uhthomas) in [#26881](immich-app/immich#26881)
- fix(web): jump to primary stacked asset from memory by [@michelheusschen](https://github.com/michelheusschen) in [#26978](immich-app/immich#26978)
- fix(mobile): reflect asset deletions instantly by [@uhthomas](https://github.com/uhthomas) in [#26835](immich-app/immich#26835)
- fix: healthcheck by [@jrasm91](https://github.com/jrasm91) in [#26989](immich-app/immich#26989)
- fix(web): escape handling for tagging and adding a face in asset viewer by [@cratoo](https://github.com/cratoo) in [#26870](immich-app/immich#26870)
- fix: filter after searching by asset id by [@jrasm91](https://github.com/jrasm91) in [#26994](immich-app/immich#26994)
- fix: bounding box return type by [@jrasm91](https://github.com/jrasm91) in [#27014](immich-app/immich#27014)
- fix: validate accept header before returning html by [@jrasm91](https://github.com/jrasm91) in [#27019](immich-app/immich#27019)

##### 📚 Documentation

- chore(docs): Update help channel for developers by [@Mraedis](https://github.com/Mraedis) in [#26284](immich-app/immich#26284)
- feat(docs): Explain configuration file location for Docker Compose by [@keunes](https://github.com/keunes) in [#24989](immich-app/immich#24989)
- chore(docs): add quick-start guide for DevPod with docker by [@dhlavaty](https://github.com/dhlavaty) in [#26213](immich-app/immich#26213)
- feat(docs): Adding information about parameter c= by [@aviv926](https://github.com/aviv926) in [#26430](immich-app/immich#26430)
- feat: doc links by [@jrasm91](https://github.com/jrasm91) in [#26519](immich-app/immich#26519)
- fix(docs): add ocr to job flow diagram by [@niij](https://github.com/niij) in [#26505](immich-app/immich#26505)

##### 🌐 Translations

- chore(web): update translations by [@weblate](https://github.com/weblate) in [#26118](immich-app/immich#26118)
- fix: clarify external domain setting is used for emails too by [@chrislongros](https://github.com/chrislongros) in [#26009](immich-app/immich#26009)
- chore(web): update translations by [@weblate](https://github.com/weblate) in [#26167](immich-app/immich#26167)
- fix(web): error page i18n by [@meesfrensel](https://github.com/meesfrensel) in [#26517](immich-app/immich#26517)
- chore(web): clarify locale settings description by [@meesfrensel](https://github.com/meesfrensel) in [#25562](immich-app/immich#25562)
- chore(web): update translations by [@weblate](https://github.com/weblate) in [#26192](immich-app/immich#26192)

##### New Contributors

- [@klenner1](https://github.com/klenner1) made their first contribution in [#26151](immich-app/immich#26151)
- [@bkchr](https://github.com/bkchr) made their first contribution in [#25088](immich-app/immich#25088)
- [@chrislongros](https://github.com/chrislongros) made their first contribution in [#26011](immich-app/immich#26011)
- [@agent-steven](https://github.com/agent-steven) made their first contribution in [#26091](immich-app/immich#26091)
- [@dhlavaty](https://github.com/dhlavaty) made their first contribution in [#26238](immich-app/immich#26238)
- [@Nacolis](https://github.com/Nacolis) made their first contribution in [#26063](immich-app/immich#26063)
- [@ewinnd](https://github.com/ewinnd) made their first contribution in [#26277](immich-app/immich#26277)
- [@dnozay](https://github.com/dnozay) made their first contribution in [#26261](immich-app/immich#26261)
- [@keunes](https://github.com/keunes) made their first contribution in [#24989](immich-app/immich#24989)
- [@Devansh-Jani](https://github.com/Devansh-Jani) made their first contribution in [#26042](immich-app/immich#26042)
- [@benjamonnguyen](https://github.com/benjamonnguyen) made their first contribution in [#26196](immich-app/immich#26196)
- [@fabio-garavini](https://github.com/fabio-garavini) made their first contribution in [#26252](immich-app/immich#26252)
- [@haoxi911](https://github.com/haoxi911) made their first contribution in [#25399](immich-app/immich#25399)
- [@thezeroalpha](https://github.com/thezeroalpha) made their first contribution in [#20286](immich-app/immich#20286)
- [@socksprox](https://github.com/socksprox) made their first contribution in [#26407](immich-app/immich#26407)
- [@kprinssu](https://github.com/kprinssu) made their first contribution in [#26178](immich-app/immich#26178)
- [@babbitt](https://github.com/babbitt) made their first contribution in [#26607](immich-app/immich#26607)
- [@niij](https://github.com/niij) made their first contribution in [#26505](immich-app/immich#26505)
- [@cratoo](https://github.com/cratoo) made their first contribution in [#26667](immich-app/immich#26667)
- [@M123-dev](https://github.com/M123-dev) made their first contribution in [#26630](immich-app/immich#26630)
- [@apejcic](https://github.com/apejcic) made their first contribution in [#22948](immich-app/immich#22948)
- [@SevereCloud](https://github.com/SevereCloud) made their first contribution in [#26760](immich-app/immich#26760)
- [@brendanngo](https://github.com/brendanngo) made their first contribution in [#26833](immich-app/immich#26833)
- [@luis15pt](https://github.com/luis15pt) made their first contribution in [#26831](immich-app/immich#26831)
- [@nathanielhourt](https://github.com/nathanielhourt) made their first contribution in [#26893](immich-app/immich#26893)
- [@Belnadifia](https://github.com/Belnadifia) made their first contribution in [#26717](immich-app/immich#26717)
- [@pressslav](https://github.com/pressslav) made their first contribution in [#26944](immich-app/immich#26944)

**Full Changelog**: <immich-app/immich@v2.5.6...v2.6.0>
sdwilsh pushed a commit to sdwilsh/ansible-playbooks that referenced this pull request Mar 21, 2026
##### [\`v2.6.1\`](https://github.com/immich-app/immich/releases/tag/v2.6.1)

##### v2.6.1

##### Hot fixes

- Fixed a failed migration issue on the mobile app when the URL Switching feature is used

##### What's Changed

##### 🐛 Bug fixes

- fix(server): fallback to email when name is empty by [@jrasm91](https://github.com/jrasm91) in [#27016](immich-app/immich#27016)
- fix: ignore errors deleting untitled album by [@jrasm91](https://github.com/jrasm91) in [#27020](immich-app/immich#27020)
- fix(web): wrap long album title by [@jrasm91](https://github.com/jrasm91) in [#27012](immich-app/immich#27012)
- fix(web): stop in-progress uploads on logout by [@jrasm91](https://github.com/jrasm91) in [#27021](immich-app/immich#27021)
- fix: writing empty exif tags by [@danieldietzler](https://github.com/danieldietzler) in [#27025](immich-app/immich#27025)
- fix(web): disable send button by [@jrasm91](https://github.com/jrasm91) in [#27051](immich-app/immich#27051)
- fix(mobile): server url migration by [@mertalev](https://github.com/mertalev) in [#27050](immich-app/immich#27050)

**Full Changelog**: <immich-app/immich@v2.6.0...v2.6.1>

---
##### [\`v2.6.0\`](https://github.com/immich-app/immich/releases/tag/v2.6.0)

##### v2.6.0

Welcome to Immich `v2.6.0`, This release is a collection of more than *350 commits over 6 weeks*. I know, it is an eternity between releases compared to our previous era. This version focuses on bug fixes and enhancements across the app to provide a more delightful and smoother experience to you. This release also prepares for the next major release in the coming month, which will remove the old timeline implementation. Let's dive into the highlights of the release:

> \[!WARNING]
> For those who are still using the old timeline, please switch to the new timeline to avoid interruption, as the old timeline will be removed in the next release.
>
> ps: The old timeline has an exclamation icon next to the logo. <img width="525" height="120" alt="image" src="https://github.com/user-attachments/assets/ed36ea22-b16e-472f-961c-c19501712ba5" />

##### Highlights

- Map side panel (web)
- Pick album cover (mobile)
- Shared link slugs (mobile)
- Shared link presets (web)
- Native HTTP clients (mobile)
- Video player and asset viewer improvements (mobile)
- Improved search results (mobile)
- `schema-check`: a new `immich-admin` command
- Read profile claims from ID token (OAuth)
- Notable fix: cast videos now automatically loop
- Notable fix: correctly extract make and model from Sony XAVC video files
- Notable fix: escape key handling on web
- Notable fix: healthcheck endpoint in maintenance mode
- Notable fix: timeline rendering for RTL languages like Arabic and Hebrew
- Notable fix: prevent server crash when extracting invalid metadata

##### Map side panel (web)

The map view on the web now opens a mini-timeline component as a side panel when you click on a cluster of assets. This makes it easier to view the cluster at a glance and enables bulk actions, such as adding to favorites and adding to an album.

<img width="800" alt="image" src="https://github.com/user-attachments/assets/6f90b04d-4aa7-4f68-b59c-c2b912e638f7" />
##### Pick album cover (mobile)

Users can now pick a new album cover directly from the mobile app.

<https://github.com/user-attachments/assets/7f99dc80-21c6-4ce6-9f75-8e6b0163dcaa>

##### Shared link slugs (mobile)

The mobile app now also supports setting a shared link slug, a feature that's been available on the web for a while.

<https://github.com/user-attachments/assets/5420995a-cfd4-471d-a3ac-db4fa45de780>

##### Shared link presets (web)

The expiration form input on the web was always a bit confusing, but it's been updated to make it easier to see and understand when a shared link will expire.

<img width="400" alt="image" src="https://github.com/user-attachments/assets/9d6124a9-eec2-43e8-b228-e1ac6c0415e8" />
##### Native HTTP clients (mobile)

The mobile app now uses native HTTP clients across both Android and iOS, with support for mTLS, self-signed certificates, basic auth, and custom headers. These features should now be more reliable and extend to background tasks, video playback, and other parts of the app. This also improves the app's overall network request performance thanks to HTTP/2 and HTTP/3, multiplexing, and caching.

##### Video player and asset viewer improvements (mobile)

The asset viewer has undergone many improvements under the hood to make it simpler, faster and more reliable. We've also added playback support for GIFs, enabled video zooming, and made many more bug fixes and tweaks.

##### The asset viewer now uses a gradient for actions, and video controls have been restyled

<img width="300" alt="image" src="https://github.com/user-attachments/assets/9a4e0892-f178-45fc-812c-10a6cba3f48b" />
##### Inline asset details

This used to be a bottom sheet and had a lot of glue for alignment. The new version is much more responsive and less buggy.

##### Before

<https://github.com/user-attachments/assets/43b59b59-7d6a-48d0-94d7-84b8cae1c2a9>

##### After

<https://github.com/user-attachments/assets/9217b6f4-1c92-40b0-bd95-a0681307cf38>

##### Improved search results (mobile)

The search results page now loads more results without rebuilding the entire grid, and should now load much faster. There are also new screens for when there are no search results and when all results have been loaded.

<https://github.com/user-attachments/assets/42ce69d4-1618-48ee-9cb9-91ec22e12b27>

##### `schema-check`: a new `immich-admin` command

A new `immich-admin` command has been added in this release: `schema-check`. The command runs a report on the database to check if any indexes, constraints, tables, or columns are missing. This check also runs automatically on startup.

##### Read profile claims from `idToken` (OAuth)

Prior to `v2.6.0`, Immich resolved the `email` and other claims from the [userinfo](https://openid.net/specs/openid-connect-core-1_0.html#UserInfo) endpoint. Now, Immich also supports reading those claims directly from the `idToken`. This makes it possible to use providers such as Microsoft ADFS that do not support the userinfo endpoint.

***

As always, there are many more QoL improvements, bug fixes, and enhancements in this release. Please find the full release note below

##### Support Immich

<p align="center">

<img src="https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExbjY2eWc5Y2F0ZW56MmR4aWE0dDhzZXlidXRmYWZyajl1bWZidXZpcyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/87CKDqErVfMqY/giphy.gif" width="450" title="SUPPORT THE PROJECT!"> 

</p>

If you find the project helpful, you can support Immich by purchasing a product key at <https://buy.immich.app> or our merchandise at <https://immich.store>

***

<!-- Release notes generated using configuration in .github/release.yml at v2.6.0 -->

##### What's Changed

##### 🔒 Security

- fix(server): restrict individual shared link asset removal to owners by [@michelheusschen](https://github.com/michelheusschen) in [#26868](immich-app/immich#26868)
- fix: add to shared link by [@jrasm91](https://github.com/jrasm91) in [#26886](immich-app/immich#26886)

##### 🚀 Features

- feat: shared link login by [@jrasm91](https://github.com/jrasm91) in [#25678](immich-app/immich#25678)
- feat: schema-check by [@jrasm91](https://github.com/jrasm91) in [#25904](immich-app/immich#25904)
- feat: add people deeplink by [@arne182](https://github.com/arne182) in [#25686](immich-app/immich#25686)
- feat(mobile): inline asset details by [@uhthomas](https://github.com/uhthomas) in [#25952](immich-app/immich#25952)
- feat(mobile): filter by tags by [@benjamonnguyen](https://github.com/benjamonnguyen) in [#26196](immich-app/immich#26196)
- feat: add .mxf file support by [@timonrieger](https://github.com/timonrieger) in [#24644](immich-app/immich#24644)
- feat: tap to see next/previous image by [@thezeroalpha](https://github.com/thezeroalpha) in [#20286](immich-app/immich#20286)
- feat(mobile): Allow users to set album cover from mobile app by [@timonrieger](https://github.com/timonrieger) in [#25515](immich-app/immich#25515)
- feat(mobile): Allow users to set profile picture from asset viewer by [@timonrieger](https://github.com/timonrieger) in [#25517](immich-app/immich#25517)
- feat: ROCm 7.2 and MIGraphX support  by [@kprinssu](https://github.com/kprinssu) in [#26178](immich-app/immich#26178)
- feat(web): map timeline sidepanel by [@michelheusschen](https://github.com/michelheusschen) in [#26532](immich-app/immich#26532)
- feat: add responsive layout to broken asset by [@midzelis](https://github.com/midzelis) in [#26384](immich-app/immich#26384)
- feat(web): toggle zoom on double-click in photo viewer by [@midzelis](https://github.com/midzelis) in [#26732](immich-app/immich#26732)
- feat(mobile): show animated images in asset viewer by [@LeLunZ](https://github.com/LeLunZ) in [#26614](immich-app/immich#26614)
- feat(mobile): open in browser by [@YarosMallorca](https://github.com/YarosMallorca) in [#26369](immich-app/immich#26369)

##### 🌟 Enhancements

- feat: verify permissions by [@jrasm91](https://github.com/jrasm91) in [#25647](immich-app/immich#25647)
- feat(web): change link expiration logic & presets  by [@YarosMallorca](https://github.com/YarosMallorca) in [#26064](immich-app/immich#26064)
- feat(mobile): dynamic layout in new timeline by [@shenlong-tanwen](https://github.com/shenlong-tanwen) in [#23837](immich-app/immich#23837)
- feat(cli): change progress bar to display file size by [@Nykri](https://github.com/Nykri) in [#23328](immich-app/immich#23328)
- feat(mobile): dynamic multi-line album name by [@uhthomas](https://github.com/uhthomas) in [#26040](immich-app/immich#26040)
- feat(mobile): hide search by context/OCR if disabled on server ([#25472](immich-app/immich#25472)) by [@Nacolis](https://github.com/Nacolis) in [#26063](immich-app/immich#26063)
- fix(release): add docker-compose.rootless.yml to released assets by [@dnozay](https://github.com/dnozay) in [#26261](immich-app/immich#26261)
- feat(web): show ocr text boxes in panoramas by [@meesfrensel](https://github.com/meesfrensel) in [#25727](immich-app/immich#25727)
- feat(web): loop chromecast video by [@etnoy](https://github.com/etnoy) in [#24410](immich-app/immich#24410)
- chore(web): merge "Add to album" and "Add to shared album" actions into a single action by [@timonrieger](https://github.com/timonrieger) in [#24669](immich-app/immich#24669)
- feat(mobile): timeline - add bottomWidgetBuilder  by [@PeterOmbodi](https://github.com/PeterOmbodi) in [#25634](immich-app/immich#25634)
- feat(mobile): video zooming in asset viewer by [@goalie2002](https://github.com/goalie2002) in [#22036](immich-app/immich#22036)
- feat(mobile): Add slug support for shared links by [@Lauritz-Tieste](https://github.com/Lauritz-Tieste) in [#26441](immich-app/immich#26441)
- feat: warn when losing transparency during thumbnail generation by [@midzelis](https://github.com/midzelis) in [#26243](immich-app/immich#26243)
- perf(mobile): optimized album sorting by [@YarosMallorca](https://github.com/YarosMallorca) in [#25179](immich-app/immich#25179)
- feat(mobile): prompt when deleting from trash by [@YarosMallorca](https://github.com/YarosMallorca) in [#26392](immich-app/immich#26392)
- feat: getAssetEdits respond with edit IDs by [@bwees](https://github.com/bwees) in [#26445](immich-app/immich#26445)
- fix(server): accept showAt and hideAt for creating memories by [@meesfrensel](https://github.com/meesfrensel) in [#26429](immich-app/immich#26429)
- feat(server): SyncAssetEditV1 by [@bwees](https://github.com/bwees) in [#26446](immich-app/immich#26446)
- feat: splash screen error page by [@shenlong-tanwen](https://github.com/shenlong-tanwen) in [#26460](immich-app/immich#26460)
- feat(mobile): add confirmation dialog to permanent delete action by [@ByteSizedMarius](https://github.com/ByteSizedMarius) in [#26442](immich-app/immich#26442)
- feat: enhance face-editor positioning by [@midzelis](https://github.com/midzelis) in [#26303](immich-app/immich#26303)
- feat: improve HEIC, HEIF and JPEG XL browser support detection by [@nicosemp](https://github.com/nicosemp) in [#26122](immich-app/immich#26122)
- refactor(web): remove replaceAsset action by [@timonrieger](https://github.com/timonrieger) in [#26444](immich-app/immich#26444)
- feat(web): bounding box for faces when hovering over the face in photo view by [@cratoo](https://github.com/cratoo) in [#26667](immich-app/immich#26667)
- feat(mobile): keep search results visible by [@uhthomas](https://github.com/uhthomas) in [#26498](immich-app/immich#26498)
- feat(mobile): use shared native client by [@mertalev](https://github.com/mertalev) in [#25942](immich-app/immich#25942)
- feat(mobile): SyncAssetEditV1 by [@bwees](https://github.com/bwees) in [#26518](immich-app/immich#26518)
- feat(ml): enable openvino for cpu by [@apejcic](https://github.com/apejcic) in [#22948](immich-app/immich#22948)
- feat: responsive video duration in thumbnail by [@midzelis](https://github.com/midzelis) in [#26770](immich-app/immich#26770)
- feat(web): animate zoom toggle with cubicOut easing by [@midzelis](https://github.com/midzelis) in [#26731](immich-app/immich#26731)
- feat(mobile): consolidate video controls by [@uhthomas](https://github.com/uhthomas) in [#26673](immich-app/immich#26673)
- feat(web): add shortcut "p" to open/close the face tag box by [@cratoo](https://github.com/cratoo) in [#26826](immich-app/immich#26826)
- feat(mobile): use material design 3 slider by [@uhthomas](https://github.com/uhthomas) in [#26829](immich-app/immich#26829)
- feat: adaptive progressive image loading for photo viewer by [@midzelis](https://github.com/midzelis) in [#26636](immich-app/immich#26636)
- fix(server): extract make/model from sony video files by [@brendanngo](https://github.com/brendanngo) in [#26833](immich-app/immich#26833)
- chore(mobile): remove background from asset viewer back button by [@uhthomas](https://github.com/uhthomas) in [#26851](immich-app/immich#26851)
- feat(server): support IDPs that only send the userinfo in the ID token by [@Belnadifia](https://github.com/Belnadifia) in [#26717](immich-app/immich#26717)
- feat(web): improve OCR overlay text fitting, reactivity, and accessibility by [@midzelis](https://github.com/midzelis) in [#26678](immich-app/immich#26678)
- fix(web): allow pasting PIN code from clipboard or password manager by [@pressslav](https://github.com/pressslav) in [#26944](immich-app/immich#26944)

##### 🐛 Bug fixes

- fix: ignore checksum constraint error when logging by [@jrasm91](https://github.com/jrasm91) in [#26113](immich-app/immich#26113)
- fix(web): use locale for date picker by [@michelheusschen](https://github.com/michelheusschen) in [#26125](immich-app/immich#26125)
- fix(web): escape shortcut handling by [@michelheusschen](https://github.com/michelheusschen) in [#26096](immich-app/immich#26096)
- fix(mobile): Login routing on Splash screen by [@PeterOmbodi](https://github.com/PeterOmbodi) in [#26128](immich-app/immich#26128)
- fix: null local date time in timeline queries by [@shenlong-tanwen](https://github.com/shenlong-tanwen) in [#26133](immich-app/immich#26133)
- fix(web): prevent event manager from throwing error by [@michelheusschen](https://github.com/michelheusschen) in [#26156](immich-app/immich#26156)
- fix(web): improve api key modal responsiveness by [@klenner1](https://github.com/klenner1) in [#26151](immich-app/immich#26151)
- fix(web): show correct assets in memory gallery by [@michelheusschen](https://github.com/michelheusschen) in [#26157](immich-app/immich#26157)
- fix(web): add missing [@immich/ui](https://github.com/immich/ui) translations by [@michelheusschen](https://github.com/michelheusschen) in [#26143](immich-app/immich#26143)
- fix(mobile): timeline handling on foldable phones + ensuring that images are not cut off by [@bkchr](https://github.com/bkchr) in [#25088](immich-app/immich#25088)
- fix(mobile): prevent nav bar label text wrapping by [@chrislongros](https://github.com/chrislongros) in [#26011](immich-app/immich#26011)
- fix(mobile): hide latest version warnings by [@uhthomas](https://github.com/uhthomas) in [#26036](immich-app/immich#26036)
- fix(mobile): inconsistent query for people by [@YarosMallorca](https://github.com/YarosMallorca) in [#24437](immich-app/immich#24437)
- fix(web): timeline multi select group state by [@michelheusschen](https://github.com/michelheusschen) in [#26180](immich-app/immich#26180)
- fix(web): add checkerboard background for transparent images by [@agent-steven](https://github.com/agent-steven) in [#26091](immich-app/immich#26091)
- fix(mobile): inherit toolbar opacity by [@uhthomas](https://github.com/uhthomas) in [#25694](immich-app/immich#25694)
- fix(web): focus tag input when modal opens by [@michelheusschen](https://github.com/michelheusschen) in [#26256](immich-app/immich#26256)
- fix(web): clear face boxes when switching assets by [@michelheusschen](https://github.com/michelheusschen) in [#26249](immich-app/immich#26249)
- fix(web): clear unsaved asset description when changing asset by [@michelheusschen](https://github.com/michelheusschen) in [#26255](immich-app/immich#26255)
- fix(web): clear cache when asset changes by [@michelheusschen](https://github.com/michelheusschen) in [#26257](immich-app/immich#26257)
- fix: utc time zone upserts by [@danieldietzler](https://github.com/danieldietzler) in [#26258](immich-app/immich#26258)
- fix: metadata crash by [@jrasm91](https://github.com/jrasm91) in [#26327](immich-app/immich#26327)
- fix: prevent server crash when extraction of metadata fails if the assets are corrupted by [@Devansh-Jani](https://github.com/Devansh-Jani) in [#26042](immich-app/immich#26042)
- fix(server): db restore failure when `DB_URL` is set to unix-domain socket connection by [@fabio-garavini](https://github.com/fabio-garavini) in [#26252](immich-app/immich#26252)
- fix: Download the edited version when downloading multiple photos by [@MontejoJorge](https://github.com/MontejoJorge) in [#26259](immich-app/immich#26259)
- fix: include `DROP INDEX` in transaction to prevent missing index on rollback by [@haoxi911](https://github.com/haoxi911) in [#25399](immich-app/immich#25399)
- fix: safari address bar color by [@jrasm91](https://github.com/jrasm91) in [#26346](immich-app/immich#26346)
- fix(web): prevent panorama image reload during asset updates by [@michelheusschen](https://github.com/michelheusschen) in [#26349](immich-app/immich#26349)
- fix(web): favoriting assets opened via GalleryViewer by [@michelheusschen](https://github.com/michelheusschen) in [#26350](immich-app/immich#26350)
- fix(i18n): add translation key for partner's photos by [@timonrieger](https://github.com/timonrieger) in [#26348](immich-app/immich#26348)
- fix(web): single select scroll behavior by [@timonrieger](https://github.com/timonrieger) in [#26358](immich-app/immich#26358)
- perf: add indexes to improve People API response times by [@bxtdvd](https://github.com/bxtdvd) in [#26337](immich-app/immich#26337)
- fix: pin code reset modal by [@jrasm91](https://github.com/jrasm91) in [#26370](immich-app/immich#26370)
- fix(mobile): Reset "People" search filter chip if no selections are made by [@benjamonnguyen](https://github.com/benjamonnguyen) in [#26267](immich-app/immich#26267)
- fix(cli): delete sidecar files after upload if requested by [@timonrieger](https://github.com/timonrieger) in [#26353](immich-app/immich#26353)
- fix(web): album description auto height by [@michelheusschen](https://github.com/michelheusschen) in [#26420](immich-app/immich#26420)
- fix(web): prevent side panel overlap during transition by [@michelheusschen](https://github.com/michelheusschen) in [#26398](immich-app/immich#26398)
- fix(web): storage template example by [@mmomjian](https://github.com/mmomjian) in [#26424](immich-app/immich#26424)
- fix(web): prevent `state_unsafe_mutation` error on people page by [@michelheusschen](https://github.com/michelheusschen) in [#26438](immich-app/immich#26438)
- fix: missing deletedAt and isVisible columns on mobile by [@bwees](https://github.com/bwees) in [#26414](immich-app/immich#26414)
- fix(mobile): joinLocal on archived timeline by [@YarosMallorca](https://github.com/YarosMallorca) in [#26387](immich-app/immich#26387)
- fix: always show library scan button by [@etnoy](https://github.com/etnoy) in [#26428](immich-app/immich#26428)
- fix: retain asset when either asset is a favorite by [@shenlong-tanwen](https://github.com/shenlong-tanwen) in [#26473](immich-app/immich#26473)
- fix(web): prevent null folder tree on concurrent load by [@michelheusschen](https://github.com/michelheusschen) in [#26489](immich-app/immich#26489)
- fix(web): toast warning when trying to upload unsupported file type by [@meesfrensel](https://github.com/meesfrensel) in [#26492](immich-app/immich#26492)
- fix(mobile): birthday picker shows limited months when no date exists by [@socksprox](https://github.com/socksprox) in [#26407](immich-app/immich#26407)
- fix: consider DAR when extracting video dimension by [@alextran1502](https://github.com/alextran1502) in [#25293](immich-app/immich#25293)
- feat(mobile): Prevent premature image cache eviction when higher image loading is enabled by [@LeLunZ](https://github.com/LeLunZ) in [#26208](immich-app/immich#26208)
- refactor: star rating by [@meesfrensel](https://github.com/meesfrensel) in [#26357](immich-app/immich#26357)
- fix(mobile): set correct initial system-ui mode in asset viewer by [@goalie2002](https://github.com/goalie2002) in [#26500](immich-app/immich#26500)
- fix(server): Live Photo migration bug when album is in template by [@NikhilAlapati](https://github.com/NikhilAlapati) in [#25329](immich-app/immich#25329)
- fix(web): handle delete shortcut on shared link page as remove by [@meesfrensel](https://github.com/meesfrensel) in [#26552](immich-app/immich#26552)
- fix(mobile): prevent video player from being recreated unnecessarily by [@uhthomas](https://github.com/uhthomas) in [#26553](immich-app/immich#26553)
- fix(mobile): don't cut off top corners of app bar by [@uhthomas](https://github.com/uhthomas) in [#26550](immich-app/immich#26550)
- feat: update onnxruntime-openvino to 1.24.1 and intel drivers by [@savely-krasovsky](https://github.com/savely-krasovsky) in [#26565](immich-app/immich#26565)
- fix: hide download action for local/merged assets by [@YarosMallorca](https://github.com/YarosMallorca) in [#26461](immich-app/immich#26461)
- fix(web): top bar z index on search page by [@YarosMallorca](https://github.com/YarosMallorca) in [#26582](immich-app/immich#26582)
- fix(web): show shared link download button when logged in by [@Snowknight26](https://github.com/Snowknight26) in [#26629](immich-app/immich#26629)
- fix(mobile): asset viewer hero animation by [@uhthomas](https://github.com/uhthomas) in [#26545](immich-app/immich#26545)
- fix(web): timeline and asset viewer RTL support by [@meesfrensel](https://github.com/meesfrensel) in [#26513](immich-app/immich#26513)
- fix(server): clean up edited thumbnail when deleting asset by [@michelheusschen](https://github.com/michelheusschen) in [#26664](immich-app/immich#26664)
- fix: implement existing withStacked on searchAssetBuilder by [@babbitt](https://github.com/babbitt) in [#26607](immich-app/immich#26607)
- fix(mobile): video state by [@uhthomas](https://github.com/uhthomas) in [#26574](immich-app/immich#26574)
- fix(maintenance mode): wait for valid server config on restart by [@insertish](https://github.com/insertish) in [#26456](immich-app/immich#26456)
- fix(web): inconsistent asset nav bar state after visiting shared link by [@Snowknight26](https://github.com/Snowknight26) in [#26674](immich-app/immich#26674)
- fix(web): download toast showing wrong filename for motion assets by [@Snowknight26](https://github.com/Snowknight26) in [#26689](immich-app/immich#26689)
- fix(mobile): add safe area for asset details by [@uhthomas](https://github.com/uhthomas) in [#26675](immich-app/immich#26675)
- fix(web): combobox dropdown positioning in modals by [@michelheusschen](https://github.com/michelheusschen) in [#26707](immich-app/immich#26707)
- fix(web): video stealing focus when it plays again when looping by [@Snowknight26](https://github.com/Snowknight26) in [#26704](immich-app/immich#26704)
- fix(ml): batch size setting by [@mertalev](https://github.com/mertalev) in [#26524](immich-app/immich#26524)
- fix(server): clarify transcoding bitrate policy by [@meesfrensel](https://github.com/meesfrensel) in [#26711](immich-app/immich#26711)
- fix: playback style migration by [@alextran1502](https://github.com/alextran1502) in [#26718](immich-app/immich#26718)
- fix(web): asset viewer showing wrong viewer type when hovering on stack thumbnails by [@Snowknight26](https://github.com/Snowknight26) in [#26741](immich-app/immich#26741)
- fix(server): opus handling as accepted audio codec in transcode policy by [@skatsubo](https://github.com/skatsubo) in [#26736](immich-app/immich#26736)
- fix(web): refresh recent albums sidebar after album changes by [@michelheusschen](https://github.com/michelheusschen) in [#26757](immich-app/immich#26757)
- fix(web): show the correct cursor at crop bounds when editing an asset by [@Snowknight26](https://github.com/Snowknight26) in [#26748](immich-app/immich#26748)
- fix(web): recalculate face bounding boxes by [@cratoo](https://github.com/cratoo) in [#26737](immich-app/immich#26737)
- fix(web): context menu overflow by [@SevereCloud](https://github.com/SevereCloud) in [#26760](immich-app/immich#26760)
- fix(web): correct tag rounding in search options by [@michelheusschen](https://github.com/michelheusschen) in [#26814](immich-app/immich#26814)
- fix(web): prevent unrelated assets from appearing in tag view by [@michelheusschen](https://github.com/michelheusschen) in [#26816](immich-app/immich#26816)
- fix(mobile): use tabular figures in backup page by [@uhthomas](https://github.com/uhthomas) in [#26830](immich-app/immich#26830)
- fix(mobile): wrap backup error message text by [@uhthomas](https://github.com/uhthomas) in [#26834](immich-app/immich#26834)
- fix(server): use correct day ordering in timeline buckets by [@michelheusschen](https://github.com/michelheusschen) in [#26821](immich-app/immich#26821)
- fix(web): face selection box position resetting on browser resize by [@Snowknight26](https://github.com/Snowknight26) in [#26766](immich-app/immich#26766)
- fix: use correct original URL for 360 video panorama playback by [@luis15pt](https://github.com/luis15pt) in [#26831](immich-app/immich#26831)
- fix(web): disable drag and drop for internal items by [@michelheusschen](https://github.com/michelheusschen) in [#26897](immich-app/immich#26897)
- fix(web): keep header fixed on individual shared links by [@michelheusschen](https://github.com/michelheusschen) in [#26892](immich-app/immich#26892)
- fix: SMTP over TLS by [@nathanielhourt](https://github.com/nathanielhourt) in [#26893](immich-app/immich#26893)
- fix(web): copy yearMonth in MonthGroup to avoid shared object reference with asset in [#26890](immich-app/immich#26890)
- fix(mobile): use shared auth for background\_downloader by [@mertalev](https://github.com/mertalev) in [#26911](immich-app/immich#26911)
- fix(web): prevent search page error on missing album filter by [@michelheusschen](https://github.com/michelheusschen) in [#26948](immich-app/immich#26948)
- fix(server): sync files to disk by [@uhthomas](https://github.com/uhthomas) in [#26881](immich-app/immich#26881)
- fix(web): jump to primary stacked asset from memory by [@michelheusschen](https://github.com/michelheusschen) in [#26978](immich-app/immich#26978)
- fix(mobile): reflect asset deletions instantly by [@uhthomas](https://github.com/uhthomas) in [#26835](immich-app/immich#26835)
- fix: healthcheck by [@jrasm91](https://github.com/jrasm91) in [#26989](immich-app/immich#26989)
- fix(web): escape handling for tagging and adding a face in asset viewer by [@cratoo](https://github.com/cratoo) in [#26870](immich-app/immich#26870)
- fix: filter after searching by asset id by [@jrasm91](https://github.com/jrasm91) in [#26994](immich-app/immich#26994)
- fix: bounding box return type by [@jrasm91](https://github.com/jrasm91) in [#27014](immich-app/immich#27014)
- fix: validate accept header before returning html by [@jrasm91](https://github.com/jrasm91) in [#27019](immich-app/immich#27019)

##### 📚 Documentation

- chore(docs): Update help channel for developers by [@Mraedis](https://github.com/Mraedis) in [#26284](immich-app/immich#26284)
- feat(docs): Explain configuration file location for Docker Compose by [@keunes](https://github.com/keunes) in [#24989](immich-app/immich#24989)
- chore(docs): add quick-start guide for DevPod with docker by [@dhlavaty](https://github.com/dhlavaty) in [#26213](immich-app/immich#26213)
- feat(docs): Adding information about parameter c= by [@aviv926](https://github.com/aviv926) in [#26430](immich-app/immich#26430)
- feat: doc links by [@jrasm91](https://github.com/jrasm91) in [#26519](immich-app/immich#26519)
- fix(docs): add ocr to job flow diagram by [@niij](https://github.com/niij) in [#26505](immich-app/immich#26505)

##### 🌐 Translations

- chore(web): update translations by [@weblate](https://github.com/weblate) in [#26118](immich-app/immich#26118)
- fix: clarify external domain setting is used for emails too by [@chrislongros](https://github.com/chrislongros) in [#26009](immich-app/immich#26009)
- chore(web): update translations by [@weblate](https://github.com/weblate) in [#26167](immich-app/immich#26167)
- fix(web): error page i18n by [@meesfrensel](https://github.com/meesfrensel) in [#26517](immich-app/immich#26517)
- chore(web): clarify locale settings description by [@meesfrensel](https://github.com/meesfrensel) in [#25562](immich-app/immich#25562)
- chore(web): update translations by [@weblate](https://github.com/weblate) in [#26192](immich-app/immich#26192)

##### New Contributors

- [@klenner1](https://github.com/klenner1) made their first contribution in [#26151](immich-app/immich#26151)
- [@bkchr](https://github.com/bkchr) made their first contribution in [#25088](immich-app/immich#25088)
- [@chrislongros](https://github.com/chrislongros) made their first contribution in [#26011](immich-app/immich#26011)
- [@agent-steven](https://github.com/agent-steven) made their first contribution in [#26091](immich-app/immich#26091)
- [@dhlavaty](https://github.com/dhlavaty) made their first contribution in [#26238](immich-app/immich#26238)
- [@Nacolis](https://github.com/Nacolis) made their first contribution in [#26063](immich-app/immich#26063)
- [@ewinnd](https://github.com/ewinnd) made their first contribution in [#26277](immich-app/immich#26277)
- [@dnozay](https://github.com/dnozay) made their first contribution in [#26261](immich-app/immich#26261)
- [@keunes](https://github.com/keunes) made their first contribution in [#24989](immich-app/immich#24989)
- [@Devansh-Jani](https://github.com/Devansh-Jani) made their first contribution in [#26042](immich-app/immich#26042)
- [@benjamonnguyen](https://github.com/benjamonnguyen) made their first contribution in [#26196](immich-app/immich#26196)
- [@fabio-garavini](https://github.com/fabio-garavini) made their first contribution in [#26252](immich-app/immich#26252)
- [@haoxi911](https://github.com/haoxi911) made their first contribution in [#25399](immich-app/immich#25399)
- [@thezeroalpha](https://github.com/thezeroalpha) made their first contribution in [#20286](immich-app/immich#20286)
- [@socksprox](https://github.com/socksprox) made their first contribution in [#26407](immich-app/immich#26407)
- [@kprinssu](https://github.com/kprinssu) made their first contribution in [#26178](immich-app/immich#26178)
- [@babbitt](https://github.com/babbitt) made their first contribution in [#26607](immich-app/immich#26607)
- [@niij](https://github.com/niij) made their first contribution in [#26505](immich-app/immich#26505)
- [@cratoo](https://github.com/cratoo) made their first contribution in [#26667](immich-app/immich#26667)
- [@M123-dev](https://github.com/M123-dev) made their first contribution in [#26630](immich-app/immich#26630)
- [@apejcic](https://github.com/apejcic) made their first contribution in [#22948](immich-app/immich#22948)
- [@SevereCloud](https://github.com/SevereCloud) made their first contribution in [#26760](immich-app/immich#26760)
- [@brendanngo](https://github.com/brendanngo) made their first contribution in [#26833](immich-app/immich#26833)
- [@luis15pt](https://github.com/luis15pt) made their first contribution in [#26831](immich-app/immich#26831)
- [@nathanielhourt](https://github.com/nathanielhourt) made their first contribution in [#26893](immich-app/immich#26893)
- [@Belnadifia](https://github.com/Belnadifia) made their first contribution in [#26717](immich-app/immich#26717)
- [@pressslav](https://github.com/pressslav) made their first contribution in [#26944](immich-app/immich#26944)

**Full Changelog**: <immich-app/immich@v2.5.6...v2.6.0>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants